如果数组有 null 或空值,清理数组的简单函数,所以如果我们有:
[ 'click1', 'click2', null, '', '', 'submitForm' ]
...它将返回:
[ 'click1', 'click2', 'submitForm' ]
这是我的代码:
function squeakyClean(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == null || arr[i] == '') {
arr.splice(i);
};
};
return arr;
}
我有一个 for 循环来检查数组中的每个值,还有一个 if 语句来查看它是否等于 null 或空字符串,如果是,我使用数组拼接方法删除该值,然后将干净的数组返回到外面for 循环。
如果你输入一个没有空字符串或空值的数组,它会工作,但如果我输入 [ 1, , 2, 3, 0, -1, 1.1 ]
它返回 [ 1]
它不应该这样做。我在这里错过了什么?
PS:我看过其他人如何在没有 for 循环和拼接方法的情况下解决这个问题,但我对如何使用这两个方法解决它很感兴趣。
最佳答案
考虑使用 filter
.比如下面会过滤掉null
, undefined
, false
, +0
, -0
、NaN
和 ""
:
arr.filter(Boolean)
关于javascript 数组清理函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233762/