将 id 添加到对象数组

a24*_*918 9 javascript arrays object

我有一个对象数组。如何从 1 开始向它们添加 id 键。

[
{
    color: "red",
    value: "#f00"
},
{
    color: "green",
    value: "#0f0"
},
{
    color: "blue",
    value: "#00f"
},
{
    color: "cyan",
    value: "#0ff"
},
{
    color: "magenta",
    value: "#f0f"
},
{
    color: "yellow",
    value: "#ff0"
},
{
    color: "black",
    value: "#000"
}
]
Run Code Online (Sandbox Code Playgroud)

所以,它会像

[
{
    color: "red",
    value: "#f00",
    id: 1
},
{
    color: "green",
    value: "#0f0",
    id: 2
},
{
    color: "blue",
    value: "#00f",
    id: 3
},
{
    color: "cyan",
    value: "#0ff",
    id: 4
},
{
    color: "magenta",
    value: "#f0f",
    id: 5 
},
{
    color: "yellow",
    value: "#ff0",
    id: 6
},
{
    color: "black",
    value: "#000",
    id: 7
}
]
Run Code Online (Sandbox Code Playgroud)

我尝试使用,forEach但它返回id数组中所有对象的长度 - 1 值。

我有大量的对象,也可以使用lodash

Mac*_*eja 13

最简单的解决方案是使用map函数

let data = [{ color: "red", value: "#f00" }, { color: "green", value: "#0f0" }]  

data = data.map((item, index) => ({ ...item, id: index + 1 }))

console.log(data)
Run Code Online (Sandbox Code Playgroud)


31p*_*piy 12

你可以用Array#forEach这个。回调的第二个参数是指元素的索引。因此,您可以将 ID 分配为index + 1.

const source = [{
    color: "red",
    value: "#f00"
  },
  {
    color: "green",
    value: "#0f0"
  },
  {
    color: "blue",
    value: "#00f"
  },
  {
    color: "cyan",
    value: "#0ff"
  },
  {
    color: "magenta",
    value: "#f0f"
  },
  {
    color: "yellow",
    value: "#ff0"
  },
  {
    color: "black",
    value: "#000"
  }
];

source.forEach((item, i) => {
  item.id = i + 1;
});

console.log(source);
Run Code Online (Sandbox Code Playgroud)


Moh*_*man 5

您可以使用.forEach()迭代数组元素并添加id

data.forEach((o, i) => o.id = i + 1);
Run Code Online (Sandbox Code Playgroud)

演示:

data.forEach((o, i) => o.id = i + 1);
Run Code Online (Sandbox Code Playgroud)
let data = [{
    color: "red",
    value: "#f00"
}, {
    color: "green",
    value: "#0f0"
}, {
    color: "blue",
    value: "#00f"
}, {
    color: "cyan",
    value: "#0ff"
}, {
    color: "magenta",
    value: "#f0f"
}, {
    color: "yellow",
    value: "#ff0"
}, {
    color: "black",
    value: "#000"
}];

data.forEach((o, i) => o.id = i + 1);

console.log(data);
Run Code Online (Sandbox Code Playgroud)