J'ai un tableau d'objets:
users = [ {userId: 23, userName:"foo"}, {userId: 34, userName:"foo"}, {userId: 45, userName:"foo"}, {userId: 56, userName:"foo"} ]
Disons que je veux trouver tous les objets avec la propriété userName et remplacer la valeur par updatedUser:
updatedUser = {"foo"}
3 Réponses :
Pourquoi vous avez besoin de lodash, vous pouvez le faire simplement comme suit.
_.setProperty( users, 'userName', 'foo' );
users = [ {userId: 23, userName:"foo"}, {userId: 34, userName:"wrong"}, {userId: 45, userName:"baz"}, {userId: 56, userName:"..."} ] users.forEach((el)=>{el.userName = "foo";}) console.log(users);
Si vous préférez utiliser lodash
, vous pouvez essayer comme suit.
users.forEach((el)=>{el.userName= "foo";})
Vous pouvez attribuer un nouvel objet avec la valeur souhaitée.
var users = [{ userId: 23, userName: "foo" }, { userId: 34, userName: "wrong" }, { userId: 45, userName: "baz" }, { userId: 56, userName: "..." }], update = { userName: "foo" }, result = users.map(o => Object.assign({}, o, update)); console.log(result);
vous pouvez utiliser Array.prototype.map
et remplacer le champ userName pour chaque élément
const users = [ {userId: 23, userName:"foo"}, {userId: 34, userName:"wrong"}, {userId: 45, userName:"baz"}, {userId: 56, userName:""} ]; const result = users.map(u => ({...u, userName: "foo"})); console.log(result);
voulez-vous le même tableau ou un nouveau?
Un nouveau tableau serait le meilleur dans mon cas