GOOGLE ADS

domingo, 24 de abril de 2022

Encuentra objeto por id en una matriz de objetos de JavaScript

Tengo una matriz:

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]

No puedo cambiar la estructura de la matriz. Me están pasando una identificación de 45, y quiero obtener 'bar'ese objeto en la matriz.

¿Cómo hago esto en JavaScript o usando jQuery?


Solución del problema

Usa el find()método:

myArray.find(x => x.id === '45').foo;

Desde MDN:

El find()método devuelve el primer valor de la matriz, si un elemento de la matriz satisface la función de prueba proporcionada. En caso contrario undefinedse devuelve.

Si desea encontrar su índice en su lugar, use findIndex():

myArray.findIndex(x => x.id === '45');

Desde MDN:

El findIndex()método devuelve el índice del primer elemento de la matriz que satisface la función de prueba proporcionada. De lo contrario, se devuelve -1.

Si desea obtener una matriz de elementos coincidentes, use el filter()método en su lugar:

myArray.filter(x => x.id === '45');

Esto devolverá una matriz de objetos. Si desea obtener una matriz de foopropiedades, puede hacerlo con el map()método:

myArray.filter(x => x.id === '45').map(x => x.foo);

Nota al margen: los métodos como find()o filter()y las funciones de flecha no son compatibles con los navegadores más antiguos (como IE), por lo que si desea admitir estos navegadores, debe transpilar su código usando Babel (con el polyfill ).

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...