查找由2D数组组成的数组的长度

时间:2016-09-28 10:20:48

标签: javascript arrays multidimensional-array

有没有办法找到这个数组的长度,以及它内部的所有子数组。含义13而不是6?无需使用循环并将数组中的所有元素相加。

我正在寻找一个可以做到这一点的命令。

[1, [4, 5, 2, 1], 2, [4, 5, 2, 6], 2, [3, 3]]

3 个答案:

答案 0 :(得分:2)

尝试平放它

[].concat.apply([], [1, [4, 5, 2, 1], 2, [4, 5, 2, 6], 2, [3, 3]]).length

答案 1 :(得分:1)

有点黑客,但你可以做到

arr.toString().split(',').length

join(',')也会起作用,它会使一切变得平坦



var arr = [1, [4, 5, 2, 1], 2, [4, 5, 2, 6], 2, [3, 3]];

console.log(arr.toString().split(',').length)




如果你想要的只是总数中的指数

如果数组在索引中包含逗号,则可以删除这些逗号以获得​​相同的效果

JSON.stringify(arr).replace(/"(.*?)"/g,'1').split(',').length

答案 2 :(得分:1)



var input = [1, [4, 5, 2, 1], 2, [4, 5, 2, 6], 2, [3, 3]];
var length = input.reduce(function(a, b) {
  return a + (Array.isArray(b) ? b.length : 1);
}, 0);
console.log(length);