Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich mithilfe von JavaScript überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist?

Wie kann ich mithilfe von JavaScript überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist?

王林
王林nach vorne
2023-09-17 11:37:021965Durchsuche

如何使用 JavaScript 检查一个数组是否是另一个数组的子集?

Das erste Array ist eine Teilmenge des zweiten Arrays, wenn das zweite Array alle Elemente des ersten Arrays enthält. Daher müssen wir manchmal überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist.

In diesem Tutorial lernen wir, drei verschiedene Methoden zu verwenden, um zu überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist.

Verwenden Sie die for-Schleife und die array.includes()-Methode

Benutzer können die for-Schleife verwenden, um jedes Element des ersten Arrays zu iterieren. Anschließend können sie mit der Methode includes() prüfen, ob das zweite Array jedes Element des ersten Arrays enthält.

Das erste Array ist eine Teilmenge des zweiten Arrays, wenn das zweite Array alle Elemente des ersten Arrays enthält.

Grammatik

Benutzer können die for-Schleife und die Methode includes() gemäß der folgenden Syntax verwenden, um festzustellen, ob ein Array eine Teilmenge eines anderen Arrays ist.

for (let ele of array1) {
   if (!array2.includes(ele)) {
      return false;
   }
}

In der obigen Syntax prüfen wir, ob Array1 eine Teilmenge von Array2 ist.

Algorithmus

  • Schritt 1 – Wir prüfen, ob Array1 eine Teilmenge von Array2 ist.

  • Schritt 2 – Verwenden Sie for-of, um jedes Element des Arrays zu durchlaufen.

  • Schritt 3 – Verwenden Sie die Methode array.includes(), um zu überprüfen, ob jedes Element von array1 in array2 enthalten ist.

  • Schritt 4 – Geben Sie false zurück, wenn ein einzelnes Element in array1 nicht in array2 enthalten ist.

  • Schritt 5 – Wenn array2 alle Elemente von array1 enthält, ist die for-Schleife-Iteration erfolgreich und gibt true zurück.

Beispiel

Im folgenden Beispiel haben wir drei Arrays mit unterschiedlichen Werten erstellt. Wir haben die Funktion isSubset() erstellt, die zwei Arrays als Parameter akzeptiert. Diese Funktion prüft, ob Array1 eine Teilmenge von Array2 ist und gibt basierend auf diesem Ergebnis einen booleschen Wert zurück.

Wir prüfen, ob Array2 und Array3 Teilmengen von Array1 sind. Der Benutzer kann die Ergebnisse in der Ausgabe beobachten.

<html>
<body>
   <h3>Using the <i>for loop and includes() method</i> to determine if one array is a subset of another array.</h3>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let array1 = [10, 20, 30, 40, 50, 60, 70, 80, 90];
      let array2 = [20, 30, 70, 80];
      let array3 = [20, 43, 45];
      function isSubset(array1, array2) {
         // Iterating through all the elements of array1
         for (let ele of array1) {
            // check if array2 contains the element of array1
            if (!array2.includes(ele)) {
               output.innerHTML += "The " + array1 + " is not a subset of " + array2 + "<br>";
               return false;
            }
         }
         output.innerHTML += "The " + array1 + " is a subset of " + array2 + "<br>";
         // If array1 contains all elements of array2 return true
         return true;
      }
      isSubset(array2, array1);
      isSubset(array3, array1)
   </script>
</body>
</html>

Verwenden Sie die Methoden array.some() und array.indexOf()

Die Methode

array.some() verwendet eine Callback-Funktion als Argument, die einen booleschen Wert zurückgibt, der auf mindestens einem Element des Referenzarrays basiert, das die Bedingung erfüllt.

Die Methode

array.indexOf() gibt den Index des Elements zurück (wenn das Element im Array vorhanden ist); andernfalls wird -1 zurückgegeben. Wenn wir also feststellen, dass ein beliebiges Element im ersten Array im zweiten Array den Index -1 hat, bedeutet dies, dass das erste Array keine Teilmenge des zweiten Arrays ist.

Grammatik

Benutzer können die Methoden array.some() und array.indexOf() gemäß der folgenden Syntax verwenden, um zu überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist.

let isSubset = !data2.some((string) => data1.indexOf(string) == -1);

Wenn in der obigen Syntax die Methode some() true zurückgibt, ist das Array data1 keine Teilmenge von data2. Daher speichern wir den entgegengesetzten booleschen Wert in der Variablen isSubset.

Beispiel

Das folgende Beispiel enthält zwei String-Arrays und prüft, ob das Array data1 eine Teilmenge des Arrays data2 ist. Das Array data1 enthält alle Elemente von data2. Daher kann der Benutzer in der Ausgabe sehen, dass das Array „data2“ eine Teilmenge von „data1“ ist.



   

Using the array.some() and array.indexOf() method to check if one array is a subset of another.

<script> let output = document.getElementById("output"); let data1 = ["Hello", "Hi", "Users"]; let data2 = ["Hello", "Users"]; let isSubset = !data2.some((string) =&gt; data1.indexOf(string) == -1); if (isSubset) { output.innerHTML += "The " + data2 + " is a subset of " + data1 + " array. <br>"; } else { output.innerHTML += "The " + data2 + " is not a subset of " + data1 + " array. <br>"; } </script>

Verwenden Sie die Methode array.every() und set()

Die Methode array.every() gibt „true“ zurück, wenn jedes Element die von der Rückruffunktion zurückgegebenen Bedingungen erfüllt.

Wir können ein set() aller Array-Elemente erstellen, da das Set eindeutige Array-Elemente enthält.

Grammatik

Verwenden Sie die Methoden set und every() gemäß der folgenden Syntax.

let setOfArray = new Set(num1);
let result = num2.every(num => setOfArray.has(num));

Beispiel

Im folgenden Beispiel erstellen wir eine Sammlung aller Elemente des Arrays num1. Danach verwenden wir die Methode has() des Javascript-Sets, um zu prüfen, ob das Set jedes Element des num2-Arrays enthält.

<html>
<body>
   <h3>Using the <i>array.every() method and set</i> to check if one array is a subset of another array.</h3>
   <p id="output"></p>
   <button onclick="checkForSubset()">Check for subset</button>
   <script>
      let output = document.getElementById("output");
      let num1 = [45, 65, 45, true, false, 45, 43, 32];
      let num2 = [false, true, false, true];
      function checkForSubset() {
         // create a set of the parent array
         let setOfArray = new Set(num1);
         // Check if every element of the child array is in the set of the parent array
         let result = num2.every(num => setOfArray.has(num));
         if (result) {
            output.innerHTML += "The " + num2 + " is a subset of " + num1 + " array. <br>";
         } else {
            output.innerHTML += "The " + num2 + " is not a subset of " + num1 + " array. <br>";
         }
      }
   </script>
</body>
</html>

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von JavaScript überprüfen, ob ein Array eine Teilmenge eines anderen Arrays ist?. 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