2017-12-07 3 views
0

ich zu einem bestimmten Index in meinem Minderer ein Element eines Arrays aktualisieren mag Operator ES6 Ausbreitung ... Hier ist, was ich tueReagieren JS Bearbeitung erstes Elements eines Arrays mit gespreiztem Operator

let array = action.payload.items; 
return [...array, array[3].id:555] 

Auf diese Weise funktioniert die Bearbeitung sehr gut, aber es fügt auch ein zusätzliches Element in das Array ein.

Irgendwelche Hilfe ???

Antwort

0

Verwenden Sie, um den Artikel zu indizieren, klonen Sie ihn und ändern Sie die id mit Object#assign. das neue Array Erstellen von Array#slice und spread unter Verwendung des aktualisierten Element an der richtigen Stelle in das neue Array einzufügen:

const items = [{ id: 1 }, { id: 2 }, { id: 3 }]; // action.payload.items 
 

 
const index = 1; 
 

 
const itemToUpdate = Object.assign({}, items[index], { id: 1000}); 
 

 
const result = [...items.slice(0, index), itemToUpdate, ...items.slice(index + 1)]; // return ... 
 

 
console.log(result);

+0

Ich aktualisiert meine Frage zu erstellen, kann es jeden Array-Index sein, die ich nicht genau ersten –

+0

See bearbeiten möchten aktualisierte Antwort. –

0

Bitte beachten Sie diese Antwort hier: https://stackoverflow.com/a/34582848/51428

Diese ist leicht auf Ihre Frage anwendbar, indem Sie Ihr neues Objekt in den Index einfügen, wo Sie das Element entfernen.

Betrachten Sie Ihr altes Element intakt zu halten, wobei Sie auch das neue Element verbreiten können

const itemToUpdate = {...items[index], id: 1000} 
Verwandte Themen