2017-10-20 21 views
-1

J'ai un tableau d'objet comme suit:Comment mettre à jour la valeur d'une clé pour tous les objets d'un tableau d'objets?

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

Quelle est la meilleure façon de changer la valeur de actif afin que la liste complète des objets a une valeur active faux? Y a-t-il aussi une fonction lodash qui peut accomplir ceci? J'utilise map, mais y a-t-il un moyen plus rapide de le faire car mon tableau est très grand et l'opération doit être effectuée plusieurs fois?

+0

Qu'avez-vous essayé jusqu'à présent ou quelles recherches avez-vous faites? – NewToJS

+0

On dirait que vous cherchez un itérateur – Andrew

Répondre

1

Vous pouvez réaliser que simplement itérer sur la liste en utilisant forEach comme ceci:

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

Une boucle for simple plus rapide à faire:

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 a une _.map et une méthode _.forEach, relativement similaire en termes de performance.