Ändern einer Eigenschaft nach id in JavaScript

Es kann vorkommen, dass Sie nicht das gesamte Objekt, sondern eine bestimmte Eigenschaft ändern müssen. Schauen wir uns an, wie das gemacht wird.

Angenommen, in der Variable arr liegt ein Array von Objekten:

javascriptlet arr = [
  {
    id: 'GYi9GauC4gBF1e2SixDvu',
    prop1: 'value11',
    prop2: 'value12',
    prop3: 'value13',
  },
  {
    id: 'IWSpfBPSV3SXgRF87uO74',
    prop1: 'value21',
    prop2: 'value22',
    prop3: 'value23',
  },
  {
    id: 'JAmjRlfQT8rLTm5tG2m1L',
    prop1: 'value31',
    prop2: 'value32',
    prop3: 'value33',
  },
];

Angenommen, in Variablen sind die id des Elements, der Name der zu ändernden Eigenschaft und der neue Wert der Eigenschaft gespeichert:

javascriptlet id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';

Zur Lösung der Aufgabe ist es praktisch, Destrukturierung und berechnete Eigenschaftsnamen zu verwenden:

javascriptlet res = arr.map(elem => {
  if (elem.id === id) {
    return {...elem, [prop]: value};
  } else {
    return elem;
  }
});
Задание 1

Gegeben sind die folgenden Variablen:

javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';

Erstellen Sie einen Button, bei dessen Klick das Array-Element mit der angegebenen id genommen wird, darin die Eigenschaft mit dem angegebenen Namen genommen wird und an das Ende des Werts dieser Eigenschaft das Zeichen '!' angehängt wird.

Задание 2

Angenommen, es sind zwei Variablen mit Eigenschaftsnamen gegeben:

javascriptlet id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';

Modifizieren Sie die vorherige Aufgabe so, dass beim Klick die Änderungen sofort für beide angegebenen Eigenschaften durchgeführt werden.

Задание 3

Passen Sie die in der Theorie gezeigte Lösung an, indem Sie das Objekt mit Object.assign kopieren.