JS Check属性存在于数值[重复]
Posted
技术标签:
【中文标题】JS Check属性存在于数值[重复]【英文标题】:JS Check property exists for number values [duplicate] 【发布时间】:2019-03-11 20:38:02 【问题描述】:我已经使用如下示例来检查对象上是否存在属性。
const payload =payment:0
if(payload && payload.payment)
console.log(payload.payment)
else
console.log('Issue')
但它以 0(零)值失败。
这个问题是关于一个具有整数键的对象,当键值为零时,大多数其他答案都不起作用。
【问题讨论】:
你试过了吗?'payload' in payment
确实有效。
@FlorianWeimer 我在lodash
中发现has
也这样做。
【参考方案1】:
查看属性payment
是否存在于对象payload
中可以这样写
'payment' in payload
或者如果您想知道属性是否直接在对象中定义(而不是通过原型继承),比如说
payload.hasOwnProperty('payment')
表达式payload.payment
,当值为0时,当用作布尔值时将产生false
。这是因为以下值将始终像false
:
0
false
NaN
undefined
null
空字符串
作为false
的这些值的技术术语是“虚假的”。所以因为 0 是假的,所以每当你写 !payload.payment
时,这个值实际上是 true
代表 0
和 false
代表其他所有内容。使用上述两种技术之一(in
或hasOwnProperty
)检查缺失的属性。
【讨论】:
我在lodash
中发现has
也这样做。以上是关于JS Check属性存在于数值[重复]的主要内容,如果未能解决你的问题,请参考以下文章