gpt4 book ai didi

javascript - 如何过滤掉数组中的 NaN, null, 0, false (JS)

转载 作者:可可西里 更新时间:2023-11-01 02:12:59 25 4
gpt4 key购买 nike

我被要求过滤掉 array 中的 NaN, null, 0, false

幸运的是我已经回答了这个问题。

function bouncer(arr) {
function filterer(arr) {
return arr > 0|| isNaN(arr) === true;
}
arr = arr.filter(filterer);
return arr;
}

//example input
bouncer([0, 1, 2, 3, 'ate', '', false]); //output [1, 2, 3, 'ate']

但问题是我真的不知道我是如何得出答案的,或者更确切地说,我不知道它是如何运作的。特别是在 arr > 0 上,过滤器如何知道 arr 已在 arr[1]、arr[2] 等上读取,而不使用循环在所有数组中迭代。

或者可以简单地解释一下代码是如何工作的。 [我已经尽力解释清楚了---]

最佳答案

如果要求你过滤掉数组中的NaN, null, 0, false,那么您的解决方案并不真正有效。

您的输入:

bouncer([0, 1, 2, 3, 'ate', '', false, NaN]);

将得到输出:

[1, 2, 3, 'ate', NaN]

要过滤掉所有“虚假”值,您可以简单地使用 Boolean:

function bouncer(arr) {
return arr.filter(Boolean);
}

bouncer([0, 1, 2, 3, 'ate', '', false, NaN]);

输出:

[1, 2, 3, 'ate']

由于 Boolean 构造函数也是一个函数,它返回 true 用于“truthy”参数或 false 用于“falsy”参数。如果该值被省略或为 0-0nullfalseNaNundefined 或空字符串 (""),对象的值为 false。所有其他值,包括任何对象或字符串 "false",都会创建一个初始值为 true 的对象。

关于javascript - 如何过滤掉数组中的 NaN, null, 0, false (JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925323/

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