gpt4 book ai didi

javascript - 测试等于条件时使用下划线时的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 09:29:24 25 4
gpt4 key购买 nike

我在项目中使用 Underscore.js 并遇到了奇怪的行为。当我使用 changes_summary === 2 过滤数组时,我得到了所需的结果,但是当我与 changes_summay === 0 使用相同的结果时,我没有得到任何输出.

代码如下:

var result={
"data": [
{
"id": 956,
"changes_summary": 2,
"name": "Pradeep",
"age": 32
},
{
"id": 956,
"changes_summary": 0,
"name": "praveen",
"age": 22
}
]
}


var filtered = _.filter(result.data, function(obj){
return (obj.changes_summary && obj.changes_summary === 2)
});
//working when comparing with changes_summary with 2 but not working when comparing with 0
console.log(filtered);

请让我知道我哪里出错了。附 Jsfiddle 链接:Jsfiddle

最佳答案

当属性值为 0 时,第一个测试 - obj.changes_summary 将失败,因为这是一个虚假值。如果您要测试该属性是否存在于对象中,您可以执行以下操作:

return (("changes_summary" in obj) && obj.changes_summary === 0);

关于javascript - 测试等于条件时使用下划线时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31564524/

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