2017-10-20 162 views
-1

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

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

什么是变革的积极价值,使整个对象列表中有活跃的值设置为false的最佳方式? 也有一个lodash函数可以做到这一点? 我使用的地图,但有更快的更好的方式,因为我的数组非常大,操作需要做几次?

+0

你到目前为止尝试过什么,或者你做过什么研究? – NewToJS

+0

听起来像你正在寻找一个迭代器 – Andrew

回答

1

你可以做到这一点通过使用forEach像这样在列表上简单地迭代:

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

list.forEach(item => item.active = false) 
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); 
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方法,在性能方面比较相似。

相关问题