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