Podría agregar "id" a cada objeto en la matriz "datos" :
const data = [ { name: "John", age: 24 }, { name: "Marry", age: 18 }, { name: "Tom", age: 15 }, ] for(const key in data) { data[key]['id'] = key; } console.log(data);Pero "id" se agrega al último en cada objeto en la matriz "datos" :
[ { name: "John", age: 24, id: "0" }, { name: "Marry", age: 18, id: "1" }, { name: "Tom", age: 15, id: "2" } ]Mi resultado deseado es el siguiente agregando "id" al primero de cada objeto en la matriz "datos" :
[ { id: "0", name: "John", age: 24 }, { id: "1", name: 'Marry', age: 18 }, { id: "2", name: 'Tom', age: 15 } ]¿Hay alguna manera de hacer eso?
Cree la matriz "newData" con "id" y la matriz "data" :
const data = [ { name: "John", age: 24 }, { name: "Marry", age: 18 }, { name: "Tom", age: 15 }, ] const newData = []; for(const key in data) { const obj = { id: key, ...data[key] } newData.push(obj); } console.log(newData);Este es el resultado:
[ { id: "0", name: "John", age: 24 }, { id: "1", name: 'Marry', age: 18 }, { id: "2", name: 'Tom', age: 15 } ]Además, si desea "id" de tipo Número , use "Número ()" :
const data = [ { name: "John", age: 24 }, { name: "Marry", age: 18 }, { name: "Tom", age: 15 }, ] const newData = []; for(const key in data) { const obj = { id: Number(key), // Here ...data[key] } newData.push(obj); } console.log(newData);Este es el resultado:
[ { id: 0, name: "John", age: 24 }, { id: 1, name: 'Marry', age: 18 }, { id: 2, name: 'Tom', age: 15 } ]