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.
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.
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; } }
Dalam sintaks di atas, kami menyemak sama ada tatasusunan1 ialah subset tatasusunan2.
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#🎜🎜🎜.
< /里>- Jika array2 mengandungi semua elemen array1, #🎜#, #🎜 Lelaran akan berjaya dan kembali benar.
Contoh
<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>
Kaedah
array.some() mengambil fungsi panggil balik sebagai parameter, yang mengembalikan nilai Boolean berdasarkan sekurang-kurangnya satu elemen tatasusunan rujukan yang memenuhi syarat.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);
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) => 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>
Jika setiap elemen memenuhi syarat yang dikembalikan oleh fungsi panggil balik, kaedah
Kita boleh mencipta set()
daripada semua elemen tatasusunan kerana set itu mengandungi elemen tatasusunan yang unik.tatabahasa
Gunakan set dan kaedah
let setOfArray = new Set(num1); let result = num2.every(num => setOfArray.has(num));
<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>
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!