【发布时间】:2017-12-01 17:01:11
【问题描述】:
我在传递给过滤器的谓词中犯了一个错误,得到了一个奇怪的结果。我当然应该写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?
【问题讨论】:
-
确定没有错字吗?在您的帖子中,它显示为
emp.gender = "F"。那不是检查 -
emp.gender = "F"这总是正确的(“F”是真的)。您正在分配一个变量,您可能想要比较它。 -
每次迭代的返回值为“F”,这是真的。
-
undefined在哪里?我没有看到。 -
@ibrahimmahrir 啊,我的错。我认为谓词返回未定义,而不是 F。
标签: javascript