【发布时间】:2017-05-11 20:13:28
【问题描述】:
我的任务是从给定数组中删除 false、null、0、“”、未定义和 NaN 元素。我研究了一个解决方案,该解决方案删除了除 null 之外的所有内容。任何人都可以解释为什么?代码如下:
function bouncer(arr) {
var notAllowed = ["",false,null,0,undefined,NaN];
for (i = 0; i < arr.length; i++){
for (j=0; j<notAllowed.length;j++) {
arr = arr.filter(function(val) {
return val !== notAllowed[j];
});
}
}
return arr;
}
bouncer([1,"", null, NaN, 2, undefined,4,5,6]);
【问题讨论】:
-
您应该知道
.filter()不会从数组中删除任何内容。它会创建一个删除了项目的新数组。
标签: javascript arrays