Necesito filtrar una matriz de objetos.
const arrayOne = [ {id: 33, name: "fruit"}, {id: 157, name: "car"}, {id: 193, name: "water"}, ]; const arrayTwo = [33, 193];Solo necesito los nombres en una matriz (sin la clave)
Rendimiento esperado
["fruit", "water"]1) Puede lograr fácilmente el resultado usando Map
const arrayOne = [ { id: 33, name: "fruit" }, { id: 157, name: "car" }, { id: 193, name: "water" }, ]; const map = new Map(); arrayOne.forEach((o) => map.set(o.id, o.name)); const arrayTwo = [33, 193]; const result = arrayTwo.map((o) => map.get(o)); console.log(result); 2) También puede lograr el resultado usando el map y find
const arrayOne = [ { id: 33, name: "fruit" }, { id: 157, name: "car" }, { id: 193, name: "water" }, ]; const arrayTwo = [33, 193]; const result = arrayTwo.map((id) => arrayOne.find((o) => o.id === id)?.name); console.log(result);simplemente puedes hacer
const arrayOne = [ { id: 33, name: "fruit" }, { id: 157, name: "car" }, { id: 193, name: "water" } ]; const arrayTwo = [33, 193]; let keepResult = []; arrayOne.map((a1) => { arrayTwo.map((a2) => { if (a1.id === a2) { keepResult.push(a1.name); } }); }); console.log("result show", keepResult); const arrayOne = [ {id: 33, name: "fruit"}, {id: 157, name: "car"}, {id: 193, name: "water"}, ]; const arrayTwo = [33, 193]; let newArray = arrayOne.filter(item => arrayTwo.includes(item.id)).map(item => item.name) console.log(newArray);prueba esto