如何在对象数组中设置每个对象的属性?

时间:2019-04-03 22:15:43

标签: javascript arrays object

我以这个数组为例:

array = [{id:3},{id:2},{id:4}]

我想遍历此对象数组,并使每个对象中的每个“ id”等于其在数组内部的索引位置,以进行如下操作:

array =[{id:0},{id:1},{id:2}]

关于如何执行此操作的任何想法?

谢谢大家的关注!

3 个答案:

答案 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;
}