短IF抛出TypeError,如果正常就可以正常-相同条件,为什么?

时间:2018-06-22 11:16:46

标签: javascript typescript

在第一种情况下,我得到TypeError: Cannot read property 'id' of undefined,第二种情况很好。从我的角度来看,这两个IF语句是相等的。我错了吗?

考虑以下代码片段:

return array[index].id ? array[index] : undefined

if (array[index]) {
  return array[index].id
} else {
  return undefined
}

2 个答案:

答案 0 :(得分:2)

您的三元条件不正确,应该是:

return array[index] ? array[index].id : undefined

它应该检查array[index]是否存在并且已定义,然后返回array[index].id,否则返回undefined

答案 1 :(得分:1)

this.http.get('assets/us-all-all.geo.json');

等于:

return array[index].id ? array[index] : undefined