我试图弄清楚如何将[[1,2,3],[1,2],[]]
之类的东西减少到数组项的总和。我想接收嵌套数组中元素的总数,因此,此问题的答案将为5
。我不在乎这些数组中的内容,而只是它们的长度。
非常感谢您的支持!
答案 0 :(得分:5)
您可以使用reduce
作为一种可能的解决方案。
let data = [[1,2,3],[1,2],[]];
const total = data.reduce((acc, entry) => acc += entry.length ,0);
console.log('total ' , total);
答案 1 :(得分:1)
Tareq的解决方案适合给出的示例。
但是,如果您有一个具有更深层嵌套的数组,并且其中可能有空的子数组,那么以下内容将有所帮助:
var a=[[],[1,2,3],[1,2],[],[[4,[5,,,6]]],[]];
console.log(a.toString().replace(/^,|,+(?=,|$)/g,'').split(',').length);
这可能有点愚蠢,但是现在表达式将忽略任何空元素,无论它们出现在何处。正则表达式在字符串的开头检查单个逗号,在字符串的中间检查多个逗号,并在字符串的末尾检查单个逗号,并相应地将其删除。