Tengo el siguiente objeto de JavaScript:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
¿Hay alguna forma de verificar si existe una clave en la matriz, similar a esta?
testArray = jQuery.inArray("key1", obj);
No funciona.
¿Tengo que iterar a través del obj de esta manera?
jQuery.each(obj, function(key,val)){}
javascript
jquery
usuario2065483
fuente
fuente
obj.has("key1")
funcionará si está utilizando ES6.obj.hasOwnProperty("key1")
lugar de solohas
?Respuestas:
Utilice el
in
operador :testArray = 'key1' in obj;
Nota al margen: Lo que tienes allí, en realidad no es un objeto jQuery, sino solo un objeto JavaScript simple.
fuente
in
así?testArray = !( 'key1' in obj);
?Eso no es un objeto jQuery, es solo un objeto.
Puede usar el método hasOwnProperty para buscar una clave:
if (obj.hasOwnProperty("key1")) { ... }
fuente
var obj = { "key1" : "k1", "key2" : "k2", "key3" : "k3" }; if ("key1" in obj) console.log("has key1 in obj");
================================================ =======================
Para acceder a una clave secundaria de otra clave
var obj = { "key1": "k1", "key2": "k2", "key3": "k3", "key4": { "keyF": "kf" } }; if ("keyF" in obj.key4) console.log("has keyF in obj");
fuente
if (!("key1" in obj)) { console.log("no key1 in obj"); }
Las respuestas anteriores son buenas. Pero esto también es bueno y útil.
!obj['your_key'] // if 'your_key' not in obj the result --> true
Es bueno para estilo corto de código especial en declaraciones 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: Si su clave es igual a nula o "" su declaración "if" será incorrecta.
obj = {'a': '', 'b': null, 'd': 'value'} !obj['a'] // result ---> true !obj['b'] // result ---> true !obj['c'] // result ---> true !obj['d'] // result ---> false
Entonces, la mejor manera de verificar si existe una clave en un obj es:
'a' in obj
fuente
Puedes probar esto:
const data = { name : "Test", value: 12 } if("name" in data){ //Found } else { //Not found }
fuente
map.has(key)
es la forma más reciente de ECMAScript 2015 de verificar la existencia de una clave en un mapa. Consulte esto para obtener detalles completos.fuente
la forma más sencilla es
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'); }
fuente
a
es una cadena vacía, cero o nula, todavía devolverá 'obj.a no existe', aunque la clavea
exista.