求一个由2D数组组成的数组的长度



是否有一种方法可以找到这个数组的长度,以及它里面的所有子数组。意思是13而不是6?无需使用循环,也无需将数组中的所有元素加起来。

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

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

试着把它放平

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

有点小技巧,但是你可以

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
  • Array#reduce 可以使用但是(在您自己的风险)

  • 使用 Array.isArray 判断传递值是否为Array

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);

相关内容

  • 没有找到相关文章

最新更新