检查一个JS对象中是否存在一个键
我有以下的JavaScript对象:
var obj = { "key1" : val, "key2" : val, "key3" : val }
有没有办法检查一个键是否存在于数组中,类似于这个?
testArray = jQuery.inArray("key1", obj);
不起作用。
我必须像这样迭代obj吗?
jQuery.each(obj, function(key,val)){}
使用in
运算符 :
testArray = 'key1' in obj;
旁注:你到那里,实际上是没有jQuery对象,但只是一个普通的JavaScript对象。
这不是一个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");
map.has(key)
是检查地图中键的存在的最新ECMAScript6方法。 完整的细节请参考这个 。
以上答案是好的。 但是这太好用了。
!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