【发布时间】:2016-07-04 17:15:38
【问题描述】:
我编写了一个脚本来使用 .splice() 删除任何 null、未定义、0、false 或空字符串值,但代码只删除了 NaN 和 0。
这是我尝试过的:
function remove(arr){ // input [NaN, 0, 15, false, -22, '',undefined, 47, null]
var bin = [];
for (var i =0; i<arr.length; i++){
if (arr[i] == (NaN || 0 || false || "" || undefined || null)){
arr.splice(arr[i],1);
}
}
console.log(arr); // Expected output [15, -22, 47]
}
【问题讨论】:
-
arr = arr.filter(e => e); -
arr = arr.filter(Boolean)是 ES5 内置的。 -
您在哪里找到语法
x == (a || b || c || d),您希望它做什么?为什么要尝试使用splice而不是使用filter来创建新数组? -
我试图检查 x 是否等于 a 或 b 或 c 或 d,我可以从你的评论中看出这是错误的语法,你能解释一下原因吗?我使用 splice 因为我是编程新手,所以我不知道更好
标签: javascript arrays