Cómo verificar si la clave existe en el objeto/matriz de JavaScript

Introducción

Un objeto en JavaScript es una colección desordenada de valor clave pares (key: value). Cada llave es conocido como un bienesy es una cadena que representa un nombre de propiedad. Si se proporciona una clave que no es una cadena, se usará su representación de cadena. Una propiedad evaluar puede ser cualquier tipo de datos que coincida conceptualmente con la propiedad: una cadena, un número, una matriz o incluso una función.

Una matriz, por otro lado, es un conjunto ordenado de valores. Cada valor se denomina elemento, que se identifica mediante un índice numérico. Una matriz puede incluir valores de casi cualquier tipo. Por ejemplo, puede almacenar cosas como números enteros, cadenas, booleanos, funciones, etc. Las matrices de JavaScript tampoco se limitan a un solo tipo, lo que significa que una matriz dada puede contener varios tipos diferentes.

Al trabajar en JavaScript, es posible que en algún momento deba determinar si existe una clave en un objeto o matriz determinado.

En este artículo, veremos los diferentes métodos que podríamos usar para comprobar si existe una clave en particular en un objeto/matriz de JavaScript.

Al usar el in Operador

los in El operador en JavaScript se usa para determinar si una determinada propiedad existe en un objeto o sus propiedades heredadas (también llamada cadena de prototipo). Si la propiedad proporcionada existe, el in el operador devuelve verdadero.

Comprobación de un objeto
let user = {
    name: 'John Doe',
    age: 17,
    profession: 'Farmer'
};
  

  
'name' in user; 
'profession' in user; 
'Daniel' in user; 
'Farmer' in user; 
Comprobación de una tabla

Ya que demostramos que JavaScript in se puede usar con objetos, es posible que se pregunte si también se puede usar con matrices. En JavaScript, todo es una instancia del tipo de objeto (excepto las primitivas), por lo que las matrices también admiten el in operador.

Confirmemos si es una instancia de Object escribe usando el instanceof operador:

let numbers = [22, 3, 74, 35];
  
numbers instanceof Object 

Ahora volvamos a usar el in operador:

let number = [12, 33, 14, 45, 6];

33 in number; 
12 in number; 

8 in number; 
6 in number; 

también volverá true para propiedades de método en un tipo de matriz, de la cual la matriz de números es una instancia.

'map' in number; 

Al usar el hasOwnProperty() Método

En JavaScript, el hasOwnProperty() La función se utiliza para determinar si el objeto tiene la propiedad proporcionada como propiedad propia. Esto es importante para determinar si el objeto heredó el atributo en lugar de ser propio.

Comprobación de un objeto
let user = {
    name: 'John Doe',
    age: 17,
    profession: 'Farmer'
};
  

let hasKey = user.hasOwnProperty('name'); 
  
if (hasKey) {
    console.log('This key exists.');
} else {
    console.log('This key does not exist.');
}
Comprobación de una tabla

Puede comenzar a preguntarse si esto funcionaría para matrices. Como establecimos anteriormente, una matriz es en realidad un prototipo (instancia) del Object type, por lo que también tiene este método.

let number = [12, 33, 14, 45];


number.hasOwnProperty(1); 
number.hasOwnProperty(0); 
number.hasOwnProperty(7); 

Al usar el Object.key() Método

El método estático Object.key genera y devuelve una matriz cuyos componentes son cadenas de nombres (claves) de las propiedades de un objeto. Esto se puede usar para recorrer las claves en el objeto, que luego podemos usar para verificar si alguna coincide con una clave determinada en el objeto.

Al usar el some() Método

some() es un método de JavaScript que prueba una función de devolución de llamada en todos los elementos de la matriz de llamada y devuelve true si la función de devolución de llamada devuelve true para ninguna de ellos.

Utilizando some() para objetos
let user = {
    name: 'John Doe',
    age: 17,
    profession: 'Farmer'
};
  

Object.keys(user).some(key => key === 'name'); 
Object.keys(user).some(key => key === 'role'); 

También podríamos personalizar esto en una función reutilizable:

const checkKey = (obj, keyName) => {
    let keyExist = Object.keys(obj).some(key => key === keyName);
    console.log(keyExist);
};
  
checkKey(user, 'name'); 
Utilizando some() para una mesa
let number = [12, 33, 14, 45];
    

number.some(value => value === 1); 
number.some(value => value === 7); 

Nuevamente, al igual que con el objeto, también podríamos usar una función reutilizable personalizada similar para verificar la existencia de un valor en una matriz:

const checkVal = (arr, val) => {
    let valExist = arr.some(value => value === val);
    console.log(valExist);
};

checkVal(number, 7); 
checkVal(number, 0); 
Al usar el indexOf() Método

JavaScript indexOf() devolverá el índice de la primer caso de un elemento de matriz. Si el elemento no existe, se devuelve -1.

Utilizando indexOf() para un objeto

los Object tipo en JavaScript en realidad no es compatible con el indexOf , ya que sus propiedades/claves no tienen inherentemente posiciones indexadas en el objeto. En cambio, podemos obtener las claves del objeto como una matriz y luego verificar la existencia de una clave usando el indexOf método:

let user = {
    name: 'John Doe',
    age: 17,
    profession: 'Farmer'
};


Object.keys(user).indexOf('name') 
Object.keys(user).indexOf('role') 

Consulte nuestra guía útil y práctica para aprender Git, con las mejores prácticas, los estándares aceptados por la industria y la hoja de trucos incluida. Deja de buscar en Google los comandos de Git y, de hecho, aprender ¡esta!

Tenga en cuenta que los objetos de JavaScript no siempre mantener el orden de las llaves, por lo que el índice devuelto puede no ser tan significativo como en las matrices. En este caso, el índice debe usarse principalmente para determinar solo la existencia de una clave.

Aquí hay un ejemplo de cómo usar esto en una función de utilidad:

const checkKey = (obj, keyName) => {
    if (Object.keys(obj).indexOf(keyName) !== -1) {
        console.log('This key exists');
    } else {
        console.log('This key does not exist');
    }
};
  
checkKey(user, 'name'); 
checkKey(user, 'role'); 
Utilizando indexOf() para una mesa

Como vimos en el ejemplo anterior, los arreglos soportan el indexOf método, a diferencia de los objetos. Para usarlo, pase el valor del elemento que está buscando a indexOfque luego devolverá la posición de este valor si existe en la matriz:

let number = [12, 33, 14, 45];
    

number.indexOf(14); 
number.indexOf(7);  

Conclusión

En este artículo, hemos visto todas las formas posibles de verificar si una clave o elemento existe en un objeto/matriz de JavaScript. Mostramos cómo usar el in operador, hasOwnProperty() método, y some método. También vimos cómo los objetos y las matrices de JS son similares en el sentido de que las matrices se heredan de los objetos y, por lo tanto, contienen muchos de los mismos métodos.

Si quieres conocer otros artículos parecidos a Cómo verificar si la clave existe en el objeto/matriz de JavaScript puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas