Mit einem Objekt, das ich klonen & hinzufügen:Clone Array mit gespreizten Operator und fügen Inline
let newObject = {
...obj,
[key]: {
...obj[key],
thing: true }
}
Also, das einige Objekte auf ein Array hinzufügt, dann ein Objekt der Eigenschaft aktualisiert wird. Ich kenne den zu aktualisierenden Index des Elements, möchte jedoch vorhandene Eigenschaften nicht überschreiben.
Jetzt möchte ich für Array, das Gleiche tun:
let newArray = [
...arr,
[key]: {
...arr[key],
thing: true }
]
die die gleichen wie oben tun könnte.
Aber das funktioniert nicht.
Sollte {key}:thing
funktionieren? Ich erinnere mich, irgendwo gelesen zu haben, vielleicht seine ES7?
ich tun konnte:
let newArray = arr.map((item, key) => key === index ? { ...item, thing: true } : item);
Aber ich war für eine saubere Syntax der Hoffnung. Ich werde keine akzeptieren, wenn es keine ähnliche Syntax gibt.
Nein, es sei denn, Sie wollen anhängen/ein Element dem Array voranstellen, verwenden Sie 'map'. Oder Array mit zwei Scheiben verteilt. – Bergi
Sie verwechseln Arrays und Objekte. – SLaks
'[Schlüssel]: Thing' ist kein Array-Element. – wostex