首页 > 解决方案 > 如何获取嵌套数组中所有非嵌套项的长度?

问题描述

数组上的 .length 属性将返回数组中元素的数量。例如,下面的数组包含 2 个元素:

[1, [2, 3]] // 2 个元素,数字 1 和数组 [2, 3] 假设我们想知道嵌套数组中非嵌套项的总数。在上述情况下,[1, [2, 3]] 包含 3 个非嵌套项,1、2 和 3。

例子

getLength([1, [2, 3]]) ➞ 3
getLength([1, [2, [3, 4]]]) ➞ 4
getLength([1, [2, [3, [4, [5, 6]]]]]) ➞ 6

标签: javascript

解决方案


您可以使用扁平化数组.flat(Infinity),然后获取长度。使用.flat()参数 ofInfinity会将嵌套数组中的所有元素连接到一个外部数组中,从而允许您计算元素的数量:

const getLength = arr => arr.flat(Infinity).length;

console.log(getLength([1, [2, 3]])) // ➞ 3
console.log(getLength([1, [2, [3, 4]]])) // ➞ 4
console.log(getLength([1, [2, [3, [4, [5, 6]]]]])) // ➞ 6


推荐阅读