I could add "id" to each object in the array "data":
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);
But "id" is added to the last in each object in the array "data":
[
{ name: "John", age: 24, id: "0" },
{ name: "Marry", age: 18, id: "1" },
{ name: "Tom", age: 15, id: "2" }
]
My desired result is this below adding "id" to the first in each object in the array "data":
[
{ id: "0", name: "John", age: 24 },
{ id: "1", name: 'Marry', age: 18 },
{ id: "2", name: 'Tom', age: 15 }
]
Are there any ways to do that?
Create the array "newData" with "id" and the array "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);
This is the result:
[
{ id: "0", name: "John", age: 24 },
{ id: "1", name: 'Marry', age: 18 },
{ id: "2", name: 'Tom', age: 15 }
]
In addition, if you want "id" of Number type, use "Number()":
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);
This is the result:
[
{ id: 0, name: "John", age: 24 },
{ id: 1, name: 'Marry', age: 18 },
{ id: 2, name: 'Tom', age: 15 }
]