gpt4 book ai didi

javascript - 为什么在 Array.prototype.filter 中 undefined 不是 falsey?

转载 作者:行者123 更新时间:2023-11-30 20:56:36 24 4
gpt4 key购买 nike

我在传递给过滤器的谓词中犯了一个错误,得到了一个奇怪的结果。我当然应该写 emp.gender === "F"。尽管如此,鉴于 undefined 是错误的,我希望 femaleEmployees 是一个空数组。但是,它包括原始数组的所有成员。

var employees = [
{ name: "bob", gender: "M" },
{ name: "lisa", gender: "F" },
{ name: "vera", gender: "F" }
];
var femaleEmployees = employees.filter(emp => emp.gender = "F");

我怀疑它与此有关,但我不完全确定如何:Why does "undefined equals false" return false?

最佳答案

您需要使用===== 来比较值,而不是分配符号=。非空字符串是真值,因此结果包括所有元素,因为它总是返回真值 "F"(即,您正在将 gender 属性更新为 "F" 然后返回属性值是 "F" )。

var femaleEmployees = employees.filter(emp => emp.gender === "F");

引用:Which equals operator (== vs ===) should be used in JavaScript comparisons?

关于javascript - 为什么在 Array.prototype.filter 中 undefined 不是 falsey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598060/

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