Array-Wert ersetzen oder anhängen

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab arbeiten wir an einem JavaScript-Programmieraufgabe, bei der es darum geht, Werte in einem Array basierend auf einer Vergleichsfunktion zu ersetzen oder anzuhängen. Durch diese Aufgabe lernen Sie, wie Sie den Spread-Operator, Array.prototype.findIndex(), Array.prototype.push() und Array.prototype.splice() verwenden, um Arrays in JavaScript zu manipulieren. Dieses Lab hilft Ihnen, Ihre Fähigkeiten beim Umgang mit Arrays und Funktionen in JavaScript zu verbessern.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/data_types -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/arith_ops -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/comp_ops -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/cond_stmts -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/obj_manip -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/destr_assign -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} javascript/spread_rest -.-> lab-28595{{"Array-Wert ersetzen oder anhängen"}} end

Wie man Array-Werte ersetzt oder anhängt

Um ein Element in einem Array zu ersetzen oder es hinzuzufügen, wenn es nicht existiert, folgen Sie diesen Schritten:

  1. Verwenden Sie den Spread-Operator (...), um eine flache Kopie des Arrays zu erstellen.
  2. Verwenden Sie Array.prototype.findIndex(), um den Index des ersten Elements zu finden, das der bereitgestellten Vergleichsfunktion compFn entspricht.
  3. Wenn kein solches Element gefunden wird, verwenden Sie Array.prototype.push(), um den neuen Wert an das Array anzuhängen.
  4. Andernfalls verwenden Sie Array.prototype.splice(), um den Wert an der gefundenen Position durch den neuen Wert zu ersetzen.

Hier ist ein Beispiel, wie diese Funktionalität implementiert werden kann:

const replaceOrAppend = (arr, val, compFn) => {
  const res = [...arr];
  const i = arr.findIndex((v) => compFn(v, val));
  if (i === -1) res.push(val);
  else res.splice(i, 1, val);
  return res;
};

Sie können diese Funktion mit einem Array von Objekten wie folgt verwenden:

const people = [
  { name: "John", age: 30 },
  { name: "Jane", age: 28 }
];
const jane = { name: "Jane", age: 29 };
const jack = { name: "Jack", age: 28 };
replaceOrAppend(people, jane, (a, b) => a.name === b.name);
// [ { name: 'John', age: 30 }, { name: 'Jane', age: 29 } ]
replaceOrAppend(people, jack, (a, b) => a.name === b.name);
// [
//   { name: 'John', age: 30 },
//   { name: 'Jane', age: 28 },
//   { name: 'Jack', age: 28 }
// ]

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Replace or Append Array Value" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.