Проверка наличия ключа в объекте JS



у меня есть следующий объект JavaScript:



var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}


есть ли способ проверить, существует ли ключ в массиве, подобный этому?



testArray = jQuery.inArray("key1", obj);


не работает.



у меня есть, чтобы выполнить итерации через объект такой?



jQuery.each(obj, function(key,val)){}
880   6  

6 ответов:

использовать in оператор:

testArray = 'key1' in obj;

Sidenote: то, что вы там получили, на самом деле не объект 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 или "" ваш "если" оператор будет неправильным.

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');
}

Comments

    Ничего не найдено.