我有以下JavaScript对象:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
有没有办法检查数组中是否存在键,与此类似?
testArray = jQuery.inArray("key1", obj);
不起作用。
我必须像这样遍历obj吗?
jQuery.each(obj, function(key,val)){}
我有以下JavaScript对象:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
有没有办法检查数组中是否存在键,与此类似?
testArray = jQuery.inArray("key1", obj);
不起作用。
我必须像这样遍历obj吗?
jQuery.each(obj, function(key,val)){}
obj.has("key1")如果您使用的是ES6,它将正常工作。
obj.hasOwnProperty("key1")不只是has?
Answers:
in这样吗?
testArray = !( 'key1' in obj);什么?
那不是一个jQuery对象,它只是一个对象。
您可以使用hasOwnProperty方法检查密钥:
if (obj.hasOwnProperty("key1")) {
...
}
var obj = {
"key1" : "k1",
"key2" : "k2",
"key3" : "k3"
};
if ("key1" in obj)
console.log("has key1 in obj");
================================================== =======================
访问另一个键的子键
var obj = {
"key1": "k1",
"key2": "k2",
"key3": "k3",
"key4": {
"keyF": "kf"
}
};
if ("keyF" in obj.key4)
console.log("has keyF in obj");
if (!("key1" in obj)) { console.log("no key1 in obj"); }
以上答案是好的。但这也很好并且有用。
!obj['your_key'] // if 'your_key' not in obj the result --> true
这对于if语句中的特殊代码的短样式很有用:
if (!obj['your_key']){
// if 'your_key' not exist in obj
console.log('key not in obj');
} else {
// if 'your_key' exist in obj
console.log('key exist in obj');
}
注意:如果您的键等于null或“”,则“ if”语句将是错误的。
obj = {'a': '', 'b': null, 'd': 'value'}
!obj['a'] // result ---> true
!obj['b'] // result ---> true
!obj['c'] // result ---> true
!obj['d'] // result ---> false
因此,检查键是否存在于obj中的最佳方法是:'a' in obj
最简单的方法是
const obj = {
a: 'value of a',
b: 'value of b',
c: 'value of c'
};
if(obj.a){
console.log(obj.a);
}else{
console.log('obj.a does not exist');
}
a为空字符串,零或null,即使键a确实存在,它仍将返回“ obj.a不存在” 。