为什么此查找功能返回未定义?

时间:2020-04-10 10:32:50

标签: javascript ecmascript-6

为什么此查找功能返回未定义的内容?

let payload = [{
  test: ''
}];

console.log(payload.find(item => item.test && item.test === '')); // undefined
console.log(payload.find(item => item.test === '')); // {test: ''}

如果item.test为真,我认为它应该测试item.test是否等于”。但是它的显示不像我想的那样。

2 个答案:

答案 0 :(得分:2)

由于empty strings are falsey,所以item.test条件失败并排除了该项目。

答案 1 :(得分:0)

payload.test是一个空字符串,因此if(payload.test)返回false

您可以将其更改为console.log(payload.find(item => item.test || item.test === ''));