Heim  >  Artikel  >  Web-Frontend  >  Wie überspringe ich Elemente in .map()?

Wie überspringe ich Elemente in .map()?

WBOY
WBOYnach vorne
2023-08-24 13:57:031204Durchsuche

如何跳过 .map() 中的元素?

In JavaScript müssen wir manchmal Array-Elemente überspringen, während wir die Methode map() verwenden. Nur wenn die Array-Werte beispielsweise endlich sind, müssen wir die Werte von einem Array auf ein anderes abbilden, nachdem wir einige mathematische Operationen an den Elementen ausgeführt haben.

In diesem Fall kann der Benutzer die folgende Methode verwenden, um Array-Elemente zu überspringen, während er die Methode map() verwendet.

Verwenden Sie if-else-Anweisungen

In der Methode array.map() können wir die if-else-Anweisung verwenden, um das Element zu überspringen. Wenn das Element die Bedingung der if-else-Anweisung erfüllt, muss das Element zur Zuordnung zurückgegeben werden. Andernfalls können wir einen Nullwert zurückgeben.

Grammatik

Benutzer können die if-else-Anweisung verwenden, um Elemente in der map()-Methode gemäß der folgenden Syntax zu überspringen.

array.map((number) => {
   if (condition) {
   
      // return some value
   }
   return null;
})

Wenn in der obigen Syntax die Bedingung der if-else-Anweisung wahr ist, geben wir einen Wert zurück, andernfalls geben wir null zurück.

Beispiel 1

Im folgenden Beispiel haben wir ein Array mit numerischen Werten erstellt. Unser Ziel ist es, jedes positive Element mit zwei zu multiplizieren und sie dem Multiplikator-Array zuzuordnen. In der Methode „map()“ prüfen wir mithilfe der Bedingung „Element > 0“, ob das Array positiv ist, und wenn es „wahr“ ergibt, geben wir die mit 2 multiplizierte Zahl zurück.

In der Ausgabe kann der Benutzer sehen, dass der Array-Index als Null angezeigt wird, wenn wir einen Nullwert zurückgeben.

<html>
<body>
   <h2>Using the <i> if-else </i> statement to skip over element in the array.map() method</h2>
   <div id = "output"></div>
</body>
<script>
   let output = document.getElementById('output');
   let array = [10, 20, 34, 4, 5, 6, 0, -1, 3, 2, 4, -2];
   let multiplier = array.map((number) => {
      if (number > 0) {
         return number * 2;
      } else {
         return null;
      }
   })
   output.innerHTML += "The final array after skipping the negative number in the map() method is - " + multiplier;
</script>
</html>

Verwenden Sie die filter()-Methode in Kombination mit der map()-Methode

Wir können die Methode filter() vor der Methode map() verwenden. Mit der Methode filter() können wir einige Elemente entfernen und die erforderlichen Elemente in einem anderen Array filtern.

Danach können wir die Map-Methode mit dem von der Filter()-Methode erstellten Array verwenden, sodass wir die Elemente in der Map()-Methode indirekt überspringen können.

Grammatik

Benutzer können die filter()-Methode gemäß der folgenden Syntax verwenden, um Elemente in der map()-Methode zu überspringen.

let filteredValues = array.filter((string) => {
   
   // filtering condition
})
let str_array = filteredValues.map((element) => {
   
   // map value
})

In der obigen Syntax filtern wir zunächst die Werte aus dem Array und verwenden die Methode map() für die gefilterten Werte.

Beispiel 2

Im folgenden Beispiel haben wir ein Array erstellt, das verschiedene Zeichenfolgenwerte enthält. Unser Ziel ist es, alle Zeichenfolgen in Großbuchstaben umzuwandeln, wobei das erste Zeichen ein Großbuchstabe ist. Daher verwenden wir zunächst die Methode filter(), um alle Zeichenfolgen zu filtern, deren erstes Zeichen ein Großbuchstabe ist, und sie im Array filteredValues ​​zu speichern.

Danach werden wir sie einem neuen Array zuordnen, nachdem wir sie mithilfe der Methode „map()“ mit dem Array „filteredValues“ in Großbuchstaben konvertiert haben.

<html>
<body>
   <h2>Using the <i> array.filter() </i> method to skip over element in the array.map() method.</h2>
   <div id = "output"></div>
</body>
<script>
   let output = document.getElementById('output'); 
   let array = ["Hello", "hi", "JavaScript", "typescript", "C", "CPP", "html"];
   let filteredValues = array.filter((string) => {
      if (string.charCodeAt(0) > 96 && string.charCodeAt(0) < 123) {
         return true;
      }
      return false;
   })
   let str_array = filteredValues.map((element) => {
      return element.toUpperCase();
   })
   output.innerHTML += "The filtered values from the array are " + filteredValues + "<br/>";
   output.innerHTML += "The final array after skipping some strings in the map() method is - " + str_array + "<br>";
</script>
</html>

Verwenden Sie die Methode array.reduce()

Die Methode

map() ordnet Elemente einem neuen Array zu. Wir können auch die Methode Reduce() verwenden, um den gleichen Zweck zu erreichen. Wir können die Methode „reduce()“ verwenden, um ein leeres Array abzurufen und Elemente nacheinander dem Array zuzuordnen.

Grammatik

Benutzer können die Methode Reduce() gemäß der folgenden Syntax verwenden, um wie die Methode Map() zu arbeiten und einige Elemente zu überspringen.

let final_Array = numbers.reduce(function (array, element) {
   if (condition) {
      
      // perform some operation
      
      // push the final element to the array
      
      // return array
   }
   
   // return array
}, []); 

In der obigen Syntax schieben wir das Element basierend auf bestimmten Bedingungen in das Array. Andernfalls geben wir das Array zurück, ohne das Element in das Array zu schieben, um das Element zu überspringen.

Beispiel 3

Im folgenden Beispiel besteht unser Ziel darin, alle durch zwei teilbaren Elemente auf sich selbst abzubilden. Daher übergeben wir die Callback-Funktion als ersten Parameter der Methode Reduce() und das leere Array als zweiten Parameter.

Wenn in der Rückruffunktion die Bedingung erfüllt ist, verschieben wir das Element in das Array und geben das Array zurück. Andernfalls geben wir das Array ohne Änderungen zurück.

Schließlich gibt die Methode Reduce() ein Array zurück, das alle zugeordneten Elemente enthält, die wir in der Variablen Final_array speichern, die der Benutzer in der Ausgabe sehen kann.

<html>
<body>
   <h2>Using the <i> array.reduce() </i> method to skip over element in the array.map() method.</h2>
   <div id = "output"></div>
</body>
<script>
   let output = document.getElementById('output'); 
   let numbers = [10, 33, 34, 55, 57, 58, 90, 87, 85, 53];
   let final_Array = numbers.reduce(function (array, element) {
      if (element % 2 == 0) {
         array.push(element);
      }
      return array;
   }, []);
   output.innerHTML += "The final array after skipping some strings in the map() method is - " + final_Array + "<br>";
</script>
</html>

Wir haben drei Möglichkeiten kennengelernt, Elemente in der Methode map() zu überspringen. Die erste Methode speichert leere Elemente und nimmt mehr Platz ein, die zweite Methode erhöht die zeitliche Komplexität, da wir nur die Methode filter() verwenden. Die dritte Methode ist die beste, da sie Raum und Zeit optimiert.

Das obige ist der detaillierte Inhalt vonWie überspringe ich Elemente in .map()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen