在JavaScript中,如何判断一个对象属性是否存在且不为空?

ulydmbyx  于 2023-05-27  发布在  Java
关注(0)|答案(4)|浏览(162)

假设我有下一个javascript对象:

var errors = {
    error_1: "Error 1 description",
    error_2: "Error 2 description",
    error_3: "",
    error_4: "Error 4 description"
};

如何判断error_1属性是否存在于errors对象中并且不为空?

1cosmwyk

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()这样的实用程序类

mfpqipee

mfpqipee2#

为了准确地回答您的问题(存在且不为空),并且假设您引用的不是空数组,您可以使用

typeof errors.error_1 === 'string' && errors.error_1.length
qjp7pelc

qjp7pelc3#

这里是另一个很好的答案,我found,并希望分享(修改后,以适应我的需要):

if ("property_name" in object_name && object_name.property_name !== undefined){
   // code..
}

所以如果我想在我的例子中应用这个,它看起来像:

if ("error_1" in errors && errors.error_1 !== undefined){
   // code..
}
0kjbasz6

0kjbasz64#

要检查对象是否为空,请使用以下代码。

if (Object.keys(object_name).length > 0) {

  // Your code

}

相关问题