Javascript 从嵌套数组中获取非空元素的数目

Javascript 从嵌套数组中获取非空元素的数目,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有十个空值数组 onTable[0 to 10]; 看 我想得到每个数组的长度,不需要空值,也不需要创建十个变量来检查 我已经测试了这个解决方案 但是我不想做十个变量。例如:count1,count2, 我也检查了,但这不是我想要的 如果可能的话,我希望这个看起来像 onTable[0].length(exclude("")) 使用过滤器和布尔值从子数组中过滤非空元素,并在子数组上使用长度 onTable[0].filter(Boolean).length 由于空字符串在JavaScri

我有十个空值数组

onTable[0 to 10];

我想得到每个数组的长度,不需要空值,也不需要创建十个变量来检查

我已经测试了这个解决方案 但是我不想做十个变量。例如:
count1,count2,

我也检查了,但这不是我想要的

如果可能的话,我希望这个看起来像

onTable[0].length(exclude(""))

使用
过滤器
布尔值
从子数组中过滤非空元素,并在子数组上使用
长度

onTable[0].filter(Boolean).length
由于空字符串在JavaScript中是错误的,所以将从过滤数组中删除它

演示:

var-arr=[
[“Jean5”、“Jean3”、“Paul2”、“Jean6”、“Paul4”、“Jean”、“Peire4”、“Jean”],
[“保罗”、“佩雷6”、“佩雷3”、“珍妮4”、“保罗”、“佩雷5”、“珍妮2”、“保罗”
];
var len=arr[1]。过滤器(布尔)。长度;

文件。书写(len)
您可以根据需要使用过滤功能:将值检查为
未定义
等。
var-arr=[
[“Jean5”、“Jean3”、“Paul2”、“Jean6”、“Paul4”、“Jean”、“Peire4”、“Jean”],
[“保罗”、“佩雷6”、“佩雷3”、“珍妮4”、“保罗”、“佩雷5”、“珍妮2”、“保罗”
];
var len=arr[1]。过滤器(函数(x){return x!='')。长度;

文件。书写(len)带有
原型

Array.prototype.LengthWithTouentyValues=函数(){
var initialLength=this.length;
var finalLength=初始长度;
对于(变量i=0;i

您应该避免“浪费”内存和导致过多GC。您可以为每个子数组指定其非空值的计数:

sub.reduce(function(prev, cur) {
  return prev + (!!cur);
}, 0);
为了处理整个主阵列,您可以将其调整到以下长度:

var-arr=[
[“Jean5”、“Jean3”、“Paul2”、“Jean6”、“Paul4”、“Jean”、“Peire4”、“Jean”],
[“保罗”、“佩雷6”、“佩雷3”、“珍尼4”、“保罗”、“佩雷5”、“珍尼2”、“珍尼2”],
[“Just1”、“”、“”]
];
变量长度=arr.map(函数(子){
返回sub.reduce(功能(上、当前){
返回上一个+(!!cur);
}, 0);
});

document.write('['+length.join('],[')+']')使用filter()并删除空值,然后获取其长度我不想从arrayfilter中删除值将不会更新现有数组。。。。它只是返回新数组
sub.reduce(function(prev, cur) {
  return prev + (!!cur);
}, 0);