Estoy tratando de devolver solo una parte de mi objeto como una matriz basada en condicionales, pero estoy un poco perplejo.
Tengo una matriz de objetos y quiero devolver una matriz de nombres para cada clave: valor en el que encajan.
Obtengo solo los emparejamientos únicos, pero también devuelvo la clave de comida: el valor y todo sigue dentro de un objeto, no de una matriz nueva. Alguna idea sería muy apreciada. Más nuevo en codificación.
const organizeNames = function (foods) { let foodNames = foods.filter((names) => { if (names.food === 'oranges') { return names.name; } }); console.log(foodNames); }; console.log( organizeNames([ { name: 'Samuel', food: 'oranges' }, { name: 'Victoria', food: 'pizza' }, { name: 'Karim', food: 'pizza' }, { name: 'Donald', food: 'pizza' }, ]) );Estás muy cerca aquí. Lo que necesita incorporar es .map() para mapear su lista de objetos a una lista de nombres. Su parte de filtro funciona, en parte por accidente, así que lo arreglé para que sea más correcto ( return names.food === 'oranges' ), y luego, una vez que tenga su lista de objetos que coincidan con 'naranjas' para su comida, asignas esa lista filtrada a una lista de nombres haciendo .map(names => names.name)
const organizeNames = function (foods) { let foodNames = foods.filter((names) => { // only keep items whose .food property === 'oranges' return names.food === 'oranges'; // returns true or false }).map(names => { // map the filtered list of objects into a list of names by // returning just the object's .name property return names.name; }); return foodNames; }; console.log( organizeNames([ { name: 'Samuel', food: 'oranges' }, { name: 'Victoria', food: 'pizza' }, { name: 'Karim', food: 'pizza' }, { name: 'Donald', food: 'pizza' }, ]) );La función de devolución de llamada filter() debería devolver true o false . Luego puede usar map() para obtener una propiedad específica de cada uno de los elementos filtrados.
const organizeNames = function(foods) { let foodNames = foods.filter((names) => names.food == 'oranges').map(names => names.name); return foodNames; } console.log( organizeNames([{ name: 'Samuel', food: 'oranges' }, { name: 'Victoria', food: 'pizza' }, { name: 'Karim', food: 'pizza' }, { name: 'Donald', food: 'pizza' }, ]) );