假设我有下一个javascript对象:
var errors = { error_1: "Error 1 description", error_2: "Error 2 description", error_3: "", error_4: "Error 4 description" };
如何判断error_1属性是否存在于errors对象中并且不为空?
error_1
errors
1cosmwyk1#
if (errors.hasOwnProperty('error_1') && errors['error_1'] )方法hasOwnProperty可用于确定对象是否具有指定的属性作为该对象的直接属性。errors[key](其中key是字符串值)检查该值是否存在且不为空如果它是一个字符串,则检查它是否为空,然后typeof errors['error_1'] === 'string' && errors['error_1'].length检查字符串的长度结果:if (errors.hasOwnProperty('error_1') && typeof errors['error_1'] === 'string' && errors['error_1'].length)现在,如果您使用的是像underscore这样的库,则可以使用像_.isEmpty、_.has(obj,key)和_.isString()这样的实用程序类
if (errors.hasOwnProperty('error_1') && errors['error_1'] )
hasOwnProperty
errors[key]
key
typeof errors['error_1'] === 'string' && errors['error_1'].length
if (errors.hasOwnProperty('error_1') && typeof errors['error_1'] === 'string' && errors['error_1'].length)
_.isEmpty
_.has(obj,key)
_.isString()
mfpqipee2#
为了准确地回答您的问题(存在且不为空),并且假设您引用的不是空数组,您可以使用
typeof errors.error_1 === 'string' && errors.error_1.length
qjp7pelc3#
这里是另一个很好的答案,我found,并希望分享(修改后,以适应我的需要):
if ("property_name" in object_name && object_name.property_name !== undefined){ // code.. }
所以如果我想在我的例子中应用这个,它看起来像:
if ("error_1" in errors && errors.error_1 !== undefined){ // code.. }
0kjbasz64#
要检查对象是否为空,请使用以下代码。
if (Object.keys(object_name).length > 0) { // Your code }
4条答案
按热度按时间1cosmwyk1#
if (errors.hasOwnProperty('error_1') && errors['error_1'] )
方法
hasOwnProperty
可用于确定对象是否具有指定的属性作为该对象的直接属性。errors[key]
(其中key
是字符串值)检查该值是否存在且不为空如果它是一个字符串,则检查它是否为空,然后
typeof errors['error_1'] === 'string' && errors['error_1'].length
检查字符串的长度结果:
if (errors.hasOwnProperty('error_1') && typeof errors['error_1'] === 'string' && errors['error_1'].length)
现在,如果您使用的是像underscore这样的库,则可以使用像
_.isEmpty
、_.has(obj,key)
和_.isString()
这样的实用程序类mfpqipee2#
为了准确地回答您的问题(存在且不为空),并且假设您引用的不是空数组,您可以使用
qjp7pelc3#
这里是另一个很好的答案,我found,并希望分享(修改后,以适应我的需要):
所以如果我想在我的例子中应用这个,它看起来像:
0kjbasz64#
要检查对象是否为空,请使用以下代码。