如何返回一个新的数组与所有真值删除?(Javascript)



我已经看到了如何从数组中删除假值,但还没有找到一个解决方案来返回一个删除所有真元素的新数组。在我的"解决方案"中,我试图用真值代替假值。但是结果并没有留给我一个只有假值的数组。

var removeTruthy = function (arr) {

for (var i = 0; i < arr.length; i++) {

if (arr[i] == true  || (arr[i]) == {} || arr[i] == "0" || arr[i] == 5 || arr[i] == Infinity      || arr[i] == "hello") {
arr.splice(i, 1);
i--;
}

}
return arr;
}


// remove truthy values
var removeTruthy = function (arr) {
return arr.filter(val => !val)
}

你只需要.filter()

过滤掉所有的false,.filter(element => element)

为了过滤掉所有的真相,下面是:

const x = [null, 0, 1, 2, 3, undefined, true, {}, "0", 5, Infinity, "hello", [], false, -1]
const y = x.filter(e => !e)
console.log(y)