101 votes

Modifiez la propriété de l'objet dans un tableau d'objets

var foo = [{ bar: 1, baz: [1,2,3] }, { bar: 2, baz: [4,5,6] }];

var filtered = $.grep(foo, function(v){
    return v.bar === 1;
});

console.log(filtered);

http://jsfiddle.net/98EsQ/

Existe-t-il un moyen de modifier la propriété d'un certain objet (comme celui que je filtre ci-dessus) sans créer de nouveaux tableaux et/ou objets ?

Résultat souhaité: [{ bar: 1, baz: [11,22,33] }, { bar: 2, baz: [4,5,6] }]

2voto

Kalpesh Dabhi Points 575

Vous pouvez modifier le tableau en utilisant une simple boucle for

var foo = [{ bar: 1, baz: [1,2,3] }, { bar: 2, baz: [4,5,6] }];
for(i = 0;i < foo.length;i++){
  //Ici votre condition pour l'élément que vous souhaitez modifier
    if(foo[i].bar == 1){
    //Ici votre logique pour mettre à jour la propriété
        foo[i].baz= [1,11,22]
    }
}
console.log(foo);

0voto

Elyas Mehraein Points 1
let myArray = [
{ id: 1, body: "laver la vaisselle", state: "fait" },
{ id: 2, body: "laver la voiture", state: "en cours" },
{ id: 3, body: "laver les mains", state: "fait" },
]

myArray.findIndex(function(obj){  // cela recherchera entre chaque objet dans le tableau
    if (obj.body=="laver la voiture"){ // trouver l'objet que vous recherchez et le passer à obj
        obj.state = "fait"   // vous pouvez sélectionner et mettre à jour n'importe quelle partie que vous voulez ici
    }

console.log(myArray) // voir le tableau mis à jour

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X