Bagaimana untuk menyemak sama ada tatasusunan ialah subset tatasusunan lain menggunakan JavaScript?

王林
Lepaskan: 2023-09-17 11:37:02
ke hadapan
1988 orang telah melayarinya

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

Tatasusunan pertama ialah subset tatasusunan kedua jika tatasusunan kedua mengandungi semua elemen tatasusunan pertama. Jadi kadangkala kita mungkin perlu menyemak sama ada satu tatasusunan ialah subset tatasusunan lain.

Dalam tutorial ini, kita akan belajar menggunakan tiga kaedah berbeza untuk menyemak sama ada tatasusunan ialah subset tatasusunan lain.

Gunakan untuk kaedah gelung dan tatasusunan.termasuk()

Pengguna boleh menggunakan gelung for untuk mengulang setiap elemen tatasusunan pertama. Selepas itu, mereka boleh menggunakan kaedah includes() untuk menyemak sama ada tatasusunan kedua mengandungi setiap elemen tatasusunan pertama.

Tatasusunan pertama ialah subset tatasusunan kedua jika tatasusunan kedua mengandungi semua elemen tatasusunan pertama.

tatabahasa

Pengguna boleh menggunakan gelung for dan kaedah includes() mengikut sintaks di bawah untuk menentukan sama ada tatasusunan ialah subset tatasusunan lain.

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

Dalam sintaks di atas, kami menyemak sama ada tatasusunan1 ialah subset tatasusunan2.

Algoritma

  • Langkah 1 - Kami akan menyemak sama ada tatasusunan1 ialah subset tatasusunan2.

  • Langkah 2 - Gunakan untuk- untuk menggelungkan setiap elemen tatasusunan.

  • Langkah 3 - Gunakan kaedah array.includes() untuk menyemak sama ada setiap elemen 🎜Terkandung1# dalam array2.

  • Langkah 4 - Kembalikan jika mana-mana elemen tunggal dalam array1 tidak terkandung dalam array2#🎜🎜🎜.

    < /里>
  • Langkah 5

    - Jika array2 mengandungi semua elemen array1, #🎜#, #🎜 Lelaran akan berjaya dan kembali benar.

    Contoh
Kami telah mencipta tiga tatasusunan yang mengandungi nilai berbeza dalam contoh di bawah. Kami mencipta fungsi isSubset() yang menerima dua tatasusunan sebagai parameter. Fungsi ini menyemak sama ada tatasusunan1 ialah subset tatasusunan2 dan mengembalikan nilai Boolean berdasarkan hasil tersebut.

Kami sedang menyemak sama ada tatasusunan2 dan tatasusunan3 ialah subset tatasusunan1. Pengguna boleh melihat keputusan dalam output.

<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>
Salin selepas log masuk

Gunakan kaedah array.some() dan array.indexOf()

Kaedah

array.some() mengambil fungsi panggil balik sebagai parameter, yang mengembalikan nilai Boolean berdasarkan sekurang-kurangnya satu elemen tatasusunan rujukan yang memenuhi syarat.

Kaedah

array.indexOf() mengembalikan indeks elemen (jika elemen wujud dalam tatasusunan jika tidak, ia mengembalikan -1). Jadi jika kita mendapati bahawa mana-mana elemen dalam tatasusunan pertama mempunyai indeks -1 dalam tatasusunan kedua, ini bermakna tatasusunan pertama bukanlah subset daripada tatasusunan kedua.

tatabahasa

Pengguna boleh menggunakan kaedah array.some() dan array.indexOf() mengikut sintaks berikut untuk menyemak sama ada tatasusunan ialah subset daripada tatasusunan lain.

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

Dalam sintaks di atas, jika kaedah some() kembali benar, tatasusunan data1 bukanlah subset data2. Oleh itu, kami menyimpan nilai boolean yang bertentangan dalam pembolehubah isSubset.

Contoh

Contoh di bawah mengandungi dua tatasusunan rentetan dan menyemak sama ada tatasusunan data1 ialah subset daripada tatasusunan data2. Tatasusunan data1 mengandungi semua elemen data2. Oleh itu, pengguna boleh melihat dalam output bahawa tatasusunan data2 ialah subset 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>
Salin selepas log masuk

Gunakan kaedah array.every() dan set()

Jika setiap elemen memenuhi syarat yang dikembalikan oleh fungsi panggil balik, kaedah

array.every()

akan kembali benar.

Kita boleh mencipta set()

daripada semua elemen tatasusunan kerana set itu mengandungi elemen tatasusunan yang unik.

tatabahasa

Gunakan set dan kaedah

every()

mengikut sintaks di bawah.

let setOfArray = new Set(num1);
let result = num2.every(num => setOfArray.has(num));
Salin selepas log masuk
Contoh

Dalam contoh berikut, kami mencipta koleksi semua elemen tatasusunan num1. Selepas itu, kami menggunakan kaedah has() set javascript untuk menyemak sama ada set itu mengandungi setiap elemen tatasusunan 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>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada tatasusunan ialah subset tatasusunan lain menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!