-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?

0

1 Answer 1

-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 }
]
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.