-1

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?

Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129

1 Answers1

-1

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 }
]
Super Kai - Kazuya Ito
  • 22,221
  • 10
  • 124
  • 129