2
votes

Trouver une propriété puis remplacer toutes ses valeurs - Lodash

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"}


2 commentaires

voulez-vous le même tableau ou un nouveau?


Un nouveau tableau serait le meilleur dans mon cas


3 Réponses :


0
votes

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";}) 


0 commentaires

0
votes

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);


0 commentaires

0
votes

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);


0 commentaires