gpt4 book ai didi

javascript - 如何在数组上使用 .filter() 仅删除 'NaN' 而不是字符串和数字?

转载 作者:行者123 更新时间:2023-12-03 09:36:30 26 4
gpt4 key购买 nike

我尝试使用 isNaN(value)!isNaN(value) 但我无法在不删除字符串的情况下删除给定代码中的 NaN 元素。 (显然是因为字符串不是数字)。

function cleaner(arr) {
return = arr.filter(function f(value) {return (value !== false && value !== null && value !== 0 && value !== undefined)});
}
cleaner([7, "eight", false, null, 0, undefined, NaN, 9, ""]);

上面的代码应该返回[7, "eight", 9, ""];

最佳答案

这将只返回数字(没有 0)和字符串(包括空字符串)。

function cleaner(arr) {
return arr.filter(function(item){
return typeof item == "string" || (typeof item == "number" && item);
/** Any string**/ /** Numbers without NaN & 0 **/
});
}
console.log(cleaner([7, "eight", false, null, 0, undefined, NaN, 9, ""]));
//[7, "eight", 9, ""]

使用 ES2015 Arrow Function句法

array.filter(item => typeof item == "string" || (typeof item == "number" && item));

var filteredArr = [7, "eight", false, null, 0, undefined, NaN, 9, ""].filter(item => typeof item == "string" || (typeof item == "number" && !isNaN(item) && item));

console.log(filteredArr);

关于javascript - 如何在数组上使用 .filter() 仅删除 'NaN' 而不是字符串和数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35052223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com