从数组中删除错误的值会留下空值.如何改进我的代码

Removing falsy values from a array leaves me with null values. How to Improve my code?

本文关键字:空值 何改进 代码 我的 数组 删除 错误      更新时间:2023-09-26

我正试图从数组中删除错误的值。我尝试过usingn typeOf和Boolean,但这会在数组中留下null值。如何改进我的代码?

function bouncer(arr) {
    var myarr=[];
    for(var i=0;i<arr.length;i++)
    {
        if(typeof arr[i] === 'boolean' || arr[i]=== 0 || arr[i]==="")
        {
            delete arr[i];
        }
    }
    return arr;
}
bouncer([7, "ate", "", false, 9]);

这个代码的输出:

([7, "ate", null, null, 9])

如何改进此代码?为什么typeOf==='oolean'不删除0和空字符串"。

更新:代码应满足以下条件。

bouncer([7, "ate", "", false, 9]) should return [7, "ate", 9].
bouncer(["a", "b", "c"]) should return ["a", "b", "c"].
bouncer([false, null, 0, NaN, undefined, ""]) should return [].

感谢

会这么简单吗?

var arr = [7, "ate", "", false, 9, "a", "b", "c", false, null, 0, NaN, undefined, ""];
var result = arr.filter(a=>a);
// [7, "ate", 9, "a", "b", "c"]
console.log(document.body.innerHTML = result);

var newArr = [];
arr.forEach(function(element) {
    if (element != false)
        newArr.push(element);
});
return newArr;

尝试if(!arr[i]){arr.splice(i,1)}