gpt4 book ai didi

javascript - 为什么 arr.filter(String) 也返回数字?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:45 24 4
gpt4 key购买 nike

<分区>

我正在做一些小练习来保持我对 js 怪癖的了解。我尝试编写一些简单的过滤器,返回一个包含某些元素的新数组,它们是字符串、数字、ecc ... 我很惊讶 arr.filter(String) 在给定数组中也有数字时产生的结果。

function onlyString(arr) {
return arr.filter(String);
}
onlyString([2, 4, "", "omg", ]) // returns [2, 4, "omg"]

然后我想看看 arr.filter(Number) 会重新运行什么

function onlyString(arr) {
return arr.filter(Number);
}
onlyString([2, 4, "", "omg", ]) // returns [2, 4]

此外,我在 arr 中添加了一个空对象以查看会发生什么:

function onlyString(arr) {
return arr.filter(Object);
}
onlyString([2, 4, "", "omg", {}]) // returns [2, 4, "", "omg", {}]

初看这里,我比较困惑,但后来我认为返回数组是正确的,因为在 js 中一切都是对象,或者我在这种情况下是对的吗?

顺便说一下,我真的很想了解 String 过滤器的幕后发生了什么,希望你能帮助我

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