我以这个数组为例:
array = [{id:3},{id:2},{id:4}]
我想遍历此对象数组,并使每个对象中的每个“ id”等于其在数组内部的索引位置,以进行如下操作:
array =[{id:0},{id:1},{id:2}]
关于如何执行此操作的任何想法?
谢谢大家的关注!
答案 0 :(得分:2)
简单的map
可以工作:
const array = [{id:3},{id:2},{id:4}];
const newArray = array.map((e, i) => ({ id: i }));
console.log(newArray);
.as-console-wrapper { max-height: 100% !important; top: auto; }
如果要使所有其他属性保持相同(如果有多个属性):
const array = [{id:3, name: "A"},{id:2, name: "B"},{id:4, name: "C"}];
const newArray = array.map((e, i) => ({ ...e, id: i }));
console.log(newArray);
.as-console-wrapper { max-height: 100% !important; top: auto; }
答案 1 :(得分:2)
使用forEach metohd将循环到数组中的每个对象,然后将对象的属性值更改为元素的索引,您必须将该对象及其索引作为第二个args传递,然后将其等同于对象属性。 / p>
let array = [{id:3},{id:2},{id:4}]
array.forEach((item, index) => {
item.id = index
})
答案 2 :(得分:1)
出于完整性考虑,您可以使用简单的for
循环在数组上循环:
for (var i = 0; i < array.length; i++) {
array[i].id = i;
}