如何更新对象数组中所有对象的键值?

时间:2017-10-20 08:17:12

标签: javascript object lodash

我有一个对象数组如下:

[
 { name:"jon", active: false },
 { name:"eve", active: false },
 { name:"adam", active: true }
]

更改活动值的最佳方法是什么,以便整个对象列表的活动值为false? 还有一个lodash功能可以实现这一目标吗? 我正在使用地图,但有更快更好的方法,因为我的数组非常大,操作需要多次完成?

3 个答案:

答案 0 :(得分:1)

你可以通过简单地使用forEach迭代列表来实现这一点:

var list = [
  { name:"jon", active: false },
  { name:"eve", active: false },
  { name:"adam", active: true }
]

list.forEach(item => item.active = false)

答案 1 :(得分:0)

var people = [
    { name:"jon", active: false },
    { name:"eve", active: false },
    { name:"adam", active: true }
];

var inactivePeople = people.map(person => {
    person.active = false;
    return person;
});

console.log(inactivePeople);

答案 2 :(得分:0)

简单的for循环可以更快地执行此操作:

let array = [
  { name: "jon", active: false },
  { name: "eve", active: false },
  { name: "adam", active: true }
]

for (let i = 0; i < array.length; i++) {
  array[i].active = false
}

jsPerf

Lodash 有一个_.map和一个_.forEach方法,在性能方面相对类似。