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)
您可以使用.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)