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

P. *_*ank 5 javascript arrays jquery

我有十个空值的数组

onTable[0 to 10];
Run Code Online (Sandbox Code Playgroud)

["Jean5", "Jean3", "Paul2", "Jean6", "", "Paul4", "Jean", "peirre4", ""]
["Paul5", "peirre6", "peirre3", "", "Jean4", "Paul", "peirre5", "Jean2", ""]
...
Run Code Online (Sandbox Code Playgroud)

我希望获得每个数组的长度没有空值,并且没有创建十个变量来检查.

我已经测试了这个解决方案 计算数组中的空值,但我不想让make 10变量.即:count1, count2,....

我也检查过根据长度比较两个数组:跳过空值但不是我想要的.

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

onTable[0].length(exclude(""))
Run Code Online (Sandbox Code Playgroud)

制作它的好方法是什么?

Tus*_*har 14

使用filterBoolean过滤来自子阵列非空元素,并使用length它.

onTable[0].filter(Boolean).length
Run Code Online (Sandbox Code Playgroud)

由于空字符串在JavaScript中是假的,它将从过滤后的数组中删除.

演示:

var arr = [
  ["Jean5", "Jean3", "Paul2", "Jean6", "", "Paul4", "Jean", "peirre4", ""],
  ["Paul5", "peirre6", "peirre3", "", "Jean4", "Paul", "peirre5", "Jean2", ""]
];

var len = arr[1].filter(Boolean).length;
document.write(len);
Run Code Online (Sandbox Code Playgroud)