【发布时间】:2019-04-25 11:32:30
【问题描述】:
此代码从数组中删除所有空值:
var array = [ 0, 1, null, 2, "", 3, undefined, 3,,,,,, 4,, 4,, 5,, 6,,,, ];
var filtered = array.filter(function (el) {
return el != null;
});
console.log(filtered);
但是当我在具有空值的嵌套数组的数组上尝试此操作时,不会删除空值:
var array = [ [ 1, null, 2 ], [ 3, null, 4 ], [ 5, null, 6 ] ];
var filtered = array.filter(function (el) {
return el != null;
});
console.log(filtered);
预期的输出是:
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]
而不是实际输出:
[ [ 1, null, 2 ], [ 3, null, 4 ], [ 5, null, 6 ] ]
如何更改我的示例以过滤嵌套数组中的空值?
【问题讨论】:
-
为什么是索引 2?结果的内部数组的索引 1 会发生什么?嵌套数组的原因是什么?
-
也许看stackoverflow.com/a/38132582/6523409。过滤器应该被递归调用。
-
@Nina Scholz,我有一个很长的数组,里面有成千上万的行,里面有空元素。我想让它适用于每个空元素,不仅适用于索引 1。
-
我的意思是,你是如何从给定的数组中得出结果的?
-
我已经编辑了您的问题,希望能为大家澄清。如果我与您的初衷偏离太远,请随时通过the revisions page回滚我的编辑
标签: javascript arrays