Tengo un archivo js que es solo una matriz con el nombre y el tipo de persona. Estoy tratando de escribir una función en mi otro archivo para iterar a través de esa matriz de objetos y devolver solo el objeto que coincide con ciertos criterios. Aquí está mi código.
persona.js
export const persons_options = [ { name: 'Andrew', type: 'Athlete', }, { name: 'Paul', type: 'Worker', }, { name: 'Phil', type: 'Developer', }, ]utils.js
// params initialized already person_type = params.subType const name = persons_options.map((option) => { if(person_type === option.type){ return option.name } }) const person = name El problema es que el mapa crea una nueva matriz, por lo que la salida es ,,Phil . ¿Cómo devolvería uno de los nombres de objeto en lugar de todos ellos?
find() hará el trabajo
let persons_options = [ { name: 'Andrew', type: 'Athlete', }, { name: 'Paul', type: 'Worker', }, { name: 'Phil', type: 'Developer', }, ] let obj = persons_options.find(o => o.type === 'Developer'); //to return name console.log("name",obj.name); console.log(obj);Necesitas usar la función de find .
Consulte aquí la lista de funciones a las que puede llamar en una matriz: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#instance_methods
filter puede adaptarse mejor a su caso si se pueden devolver múltiples resultados.