J'ai un tableau comme celui-ci:
{ id: '4581852', label: 'new Three', types: [1, 7, 9] }
3 Réponses :
Vous pouvez utiliser p> tableau # Rechercher code> pour obtenir l'objet, puis mettez-la directement à jour directement ses propriétés.
const arr = [
{
id: '1852',
label: 'One',
types: [1, 2, 4]
},
{
id: '1854852',
label: 'Two',
types: [1, 2]
},
{
id: '4581852',
label: 'Three',
types: [1]
}
]
const obj = arr.find(({id})=>id==='4581852');
obj.label = 'new Three';
obj.types.push(7,9);
console.log(arr);
Je ne peux pas utiliser la méthode push, Eslint le rejetera
@Taouben Comment ajoutez-vous des éléments à la matrice alors?
@Taouben Vous pouvez également utiliser Spread Syntaxe: obj.types = [... obj.types, 7, 9] code>
expressions de Ramda? Je n'utiliserai pas aussi simplement simplement JS ici, j'ai dit cela dans le titre
Je ne pense pas que les expressions de Ramda rendent cette tâche plus facile.
Vous pouvez rechercher Exemple d'utilisation pour remplacer id code> dans
list code> et mettre
objet code> à la place de ce que vous trouvez.
Gardez à l'esprit que de cette façon
objet code> doit contenir toutes les propriétés.
const list = [
{
id: '1852',
label: 'One',
types: [1, 2, 4]
},
{
id: '1854852',
label: 'Two',
types: [1, 2]
},
{
id: '4581852',
label: 'Three',
types: [1]
}
]
const nextList = replace(list, "1854852", { id: "1854852", label: 'Other Three', types: [1, 2, 3] })
Tout d'abord, Ramda sera pas em> vous aider à modifier votre valeur, si par "Modifier", vous voulez dire altérer en place. Ramda (non-responsabilité: Je suis l'un des auteurs) est vraiment de travailler avec des données immuables. Cependant, il possède de nombreuses techniques pour vous aider à créer une copie modifiée de vos données. Je ne sais pas que l'un d'entre eux en vaut la peine, car une version ES6 assez simple est tout aussi propre. Si vous souhaitez utiliser Ramda, une version peut ressembler à ceci: P> P> .as-console-wrapper {min-height: 100% !important; top: 0}