Maison > interface Web > js tutoriel > le corps du texte

Comment vérifier si un tableau est un sous-ensemble d'un autre tableau en utilisant JavaScript ?

王林
Libérer: 2023-09-17 11:37:02
avant
2013 Les gens l'ont consulté

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

Le premier tableau est un sous-ensemble du deuxième tableau si le deuxième tableau contient tous les éléments du premier tableau. Ainsi, nous devrons parfois vérifier si un tableau est un sous-ensemble d’un autre tableau.

Dans ce tutoriel, nous apprendrons à utiliser trois méthodes différentes pour vérifier si un tableau est un sous-ensemble d'un autre tableau.

Utilisez la méthode for loop et array.includes()

L'utilisateur peut utiliser la boucle for pour parcourir chaque élément du premier tableau. Ensuite, ils peuvent utiliser la méthode includes() pour vérifier si le deuxième tableau contient tous les éléments du premier tableau.

Le premier tableau est un sous-ensemble du deuxième tableau si le deuxième tableau contient tous les éléments du premier tableau.

Grammaire

Les utilisateurs peuvent utiliser la boucle for et la méthode includes() selon la syntaxe ci-dessous pour déterminer si un tableau est un sous-ensemble d'un autre tableau.

for (let ele of array1) {
   if (!array2.includes(ele)) {
      return false;
   }
}
Copier après la connexion

Dans la syntaxe ci-dessus, nous vérifions si array1 est un sous-ensemble de array2.

Algorithme

  • Étape 1 - Nous vérifierons si le tableau1 est un sous-ensemble du tableau2.

  • Étape 2 - Utilisez for-of pour parcourir chaque élément du tableau.

  • Étape 3 - Utilisez la méthode array.includes() pour vérifier si chaque élément de array1 est inclus dans array2.

  • Étape 4 - Renvoie false si un seul élément de array1 n'est pas contenu dans array2.

    < /里>
  • Étape 5 - Si array2 contient tous les éléments de array1, l'itération for-loop réussira et retournera vrai.

Exemple

Nous avons créé trois tableaux contenant des valeurs différentes dans l'exemple ci-dessous. Nous avons créé la fonction isSubset() qui accepte deux tableaux comme paramètres. Cette fonction vérifie si array1 est un sous-ensemble de array2 et renvoie une valeur booléenne basée sur ce résultat.

Nous vérifions si array2 et array3 sont des sous-ensembles de array1. L'utilisateur peut observer les résultats dans la sortie.

<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>
Copier après la connexion

Utilisez les méthodes array.some() et array.indexOf()

La méthode

array.some() prend comme argument une fonction de rappel, qui renvoie une valeur booléenne basée sur au moins un élément du tableau référencé qui satisfait à la condition.

La méthode

array.indexOf() renvoie l'index de l'élément (si l'élément existe dans le tableau sinon, elle renvoie -1) ; Ainsi, si nous constatons qu'un élément du premier tableau a l'indice -1 dans le deuxième tableau, cela signifie que le premier tableau n'est pas un sous-ensemble du deuxième tableau.

Grammaire

Les utilisateurs peuvent utiliser les méthodes array.some() et array.indexOf() selon la syntaxe ci-dessous pour vérifier si un tableau est un sous-ensemble d'un autre tableau.

let isSubset = !data2.some((string) => data1.indexOf(string) == -1);
Copier après la connexion

Dans la syntaxe ci-dessus, si la méthode some() renvoie true, le tableau data1 n'est pas un sous-ensemble de data2. Par conséquent, nous stockons sa valeur booléenne opposée dans la variable isSubset.

Exemple

L'exemple ci-dessous contient deux tableaux de chaînes et vérifie si le tableau data1 est un sous-ensemble du tableau data2. Le tableau data1 contient tous les éléments de data2. Par conséquent, l’utilisateur peut voir dans la sortie que le tableau data2 est un sous-ensemble de data1.



   

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>
Copier après la connexion

Utilisez la méthode array.every() et set()

La méthode array.every() retournera true si chaque élément remplit les conditions renvoyées par la fonction de rappel.

Nous pouvons créer un set() de tous les éléments du tableau car l'ensemble contient des éléments de tableau uniques.

Grammaire

Utilisez les méthodes set et every() selon la syntaxe ci-dessous.

let setOfArray = new Set(num1);
let result = num2.every(num => setOfArray.has(num));
Copier après la connexion

Exemple

Dans l'exemple ci-dessous, nous créons une collection de tous les éléments du tableau num1. Après cela, nous utilisons la méthode has() de l'ensemble javascript pour vérifier si l'ensemble contient chaque élément du tableau num2.

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal