Tengo una matriz de objetos en Javascript y quiero recopilar solo la clave y el valor dados de la lista. ¿Cómo se haría esto? Siento que he diseñado la solución en exceso, pero tal vez no.
No estaba seguro de si había una forma más limpia de hacer esto.
Los resultados deben ser una lista de objetos que contengan solo la clave 'id' y id 'valor'.
const items = [{ id: "45054", name: "Brittany" }, { id: "8980", name: "Amber" }, { id: "9843", name: "Leslie" }, { id: "45306", name: "Doug" }, { id: "7863", name: "Kevin" }, ] let ids = [] for (let i = 0; i < items.length; i++) { ids.push({ id: items[i].id }) } console.log(ids)eso no está mal, personalmente solo usaría map:
let ids = items.map(item => ({id: item.id}));Una forma más limpia sería usar Array.prototype.map() . Sin embargo, su respuesta ciertamente no es una forma incorrecta de hacerlo.
const items = [{ id: "45054", name: "Brittany" }, { id: "8980", name: "Amber" }, { id: "9843", name: "Leslie" }, { id: "45306", name: "Doug" }, { id: "7863", name: "Kevin" }, ] const ids = items.map(x => ({id: x.id})); console.log(ids)Para lidiar con esto, puede usar el mapa como dijo Pranev, pero si desea tener una solución más específica basada en cualquier otra clave, puede jugar con Object.keys y luego usar la clave que desea para obtener la identificación o cualquier otra clave.
const items = [ { id: "45054", name: "Brittany", }, { id: "8980", name: "Amber", }, { id: "9843", name: "Leslie", }, { id: "45306", name: "Doug", }, { id: "7863", name: "Kevin", }, ]; let ids = []; for (let i = 0; i < items.length; i++) { const keys = Object.keys(items[i]); keys.forEach((key) => { if (key === "id") { ids.push({ id: items[i][key], }); } }); } console.log(ids);