Tenho o seguinte objeto JavaScript:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
Existe uma maneira de verificar se existe uma chave na matriz, semelhante a esta?
testArray = jQuery.inArray("key1", obj);
não funciona.
Eu tenho que iterar por meio do obj assim?
jQuery.each(obj, function(key,val)){}
javascript
jquery
user2065483
fonte
fonte
obj.has("key1")
funcionará se você estiver usando ES6.obj.hasOwnProperty("key1")
vez de apenashas
?Respostas:
Use o
in
operador :testArray = 'key1' in obj;
Sidenote: O que você tem aí, na verdade não é um objeto jQuery, mas apenas um objeto JavaScript simples.
fonte
in
assim?testArray = !( 'key1' in obj);
?Isso não é um objeto jQuery, é apenas um objeto.
Você pode usar o método hasOwnProperty para verificar se há uma chave:
if (obj.hasOwnProperty("key1")) { ... }
fonte
var obj = { "key1" : "k1", "key2" : "k2", "key3" : "k3" }; if ("key1" in obj) console.log("has key1 in obj");
======================================================== =========================
Para acessar uma chave filha de outra chave
var obj = { "key1": "k1", "key2": "k2", "key3": "k3", "key4": { "keyF": "kf" } }; if ("keyF" in obj.key4) console.log("has keyF in obj");
fonte
if (!("key1" in obj)) { console.log("no key1 in obj"); }
As respostas acima são boas. Mas isso também é bom e útil.
!obj['your_key'] // if 'your_key' not in obj the result --> true
É bom para um estilo curto de código especial em instruções 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'); }
Nota: Se sua chave for igual a null ou "" sua instrução "if" estará errada.
obj = {'a': '', 'b': null, 'd': 'value'} !obj['a'] // result ---> true !obj['b'] // result ---> true !obj['c'] // result ---> true !obj['d'] // result ---> false
Portanto, a melhor maneira de verificar se existe uma chave em um obj é:
'a' in obj
fonte
Você pode tentar isto:
const data = { name : "Test", value: 12 } if("name" in data){ //Found } else { //Not found }
fonte
map.has(key)
é a forma mais recente do ECMAScript 2015 de verificar a existência de uma chave em um mapa. Consulte isso para obter detalhes completos.fonte
a maneira mais simples é
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'); }
fonte
a
for uma string vazia, zero ou nula, ainda retornará 'obj.a não existe', mesmo que a chavea
exista.