Cara terpantas untuk menukar NodeList JavaScript kepada Array

WBOY
Lepaskan: 2023-08-31 21:01:22
ke hadapan
909 orang telah melayarinya

将 JavaScript NodeList 转换为数组的最快方法

Dalam tutorial ini, kita akan mempelajari cara terpantas untuk menukar JavaScript NodeList kepada Array. NodeList ialah struktur seperti tatasusunan; ia adalah koleksi elemen DOM (Document Object Model). Walau bagaimanapun, kaedah tatasusunan seperti "map( )", "filter( )" dan "slice( )" tidak boleh digunakan pada objek NodeList.

Terdapat banyak cara untuk menukar NodeList kepada Array, tetapi gunakan dua kaedah ini untuk menyelesaikan tugas dengan lebih cepat -

  • Dengan melelaran melalui gelung for

  • Gunakan fungsi Array.from( )

Dengan melelaran melalui gelung for

Dalam JavaScript, kita boleh menggunakan gelung for untuk mengulang NodeList untuk mendapatkan semua elemen melaksanakan tugas tertentu. Jadi, dengan mengulangi NodeList, kami menyalin semua elemen NodeList dalam tatasusunan.

Tatabahasa

const len = nodeList.length;
const arr = Array(len);
for (var i = 0 ; i != len ; i++) {
   arr[i] = nodeList[i];
}
Salin selepas log masuk

Kami menyimpan panjang nodeList dalam pembolehubah dan mengisytiharkan tatasusunan saiz itu. Apabila kita mengetahui saiz tatasusunan, adalah lebih baik untuk mengisytiharkan tatasusunan saiz tetap. Kemudian kami menggunakan gelung for untuk menetapkan nilai dalam tatasusunan.

Algoritma

  • Langkah 1 - Simpan panjang nodeList dalam pembolehubah len.

  • Langkah 2 - Isytiharkan susunan saiz lensa.

  • Langkah 3 - Dalam gelung for, mulakan pembolehubah pembilang "i" dengan nilai 0.

  • Langkah 3.1 - Ulang gelung sehingga "i" tidak sama dengan len.

  • Langkah 3.2 - Dalam keadaan kemas kini, tambah "i" sebanyak 1.

  • Langkah 3.3 - Dalam badan gelung for, tetapkan nilai indeks ke-i NodeList kepada indeks ke-i tatasusunan.

    < /里>

Contoh

Dalam contoh di bawah, menggunakan kaedah Document document.querySelectorAll(), kami mendapat NodeList pemilih jenis "div". Kami sedang menukar NodeList ini kepada tatasusunan.

<html>
<body>
   <h2> Convert JavaScript NodeList to Array </h2>
   <div> <p> This is paragraph of first 'div' element </p> </div>
   <div> <p> This is paragraph of second 'div' element </p> </div>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById("output");
      output.innerHTML = " <p> This is paragraph of third 'div' element </p> "
      output.innerHTML += " <b> Output of <i> NodeList </i> <b> <br> <br> ";
      
      //get NodeList of 'div' elements
      const nodeList = document.querySelectorAll('div');
      
      //Display output of NodeList
      output.innerHTML += nodeList + "<br> <br>";
      output.innerHTML += "<b> Output of <i> Array </i> <b> <br> <br>";
      
      //save length of NodeList
      const len = nodeList.length;
      
      //Declare array of size len
      const arr = Array(len);
      
      //This for loop will convert NodeList to Array
      for (var i = 0 ; i != len ; i++) {
         arr[i] = nodeList[i];
      }
      
      //Display output of Array
      output.innerHTML += arr;
   </script>
</body>
</html>
Salin selepas log masuk

Dalam kod di atas, pengguna boleh melihat bahawa kami menggunakan gelung for untuk mencipta tatasusunan sebenar daripada NodeList. Kami menggunakan const untuk menyimpan panjang NodeList dalam 'len' dan mengisytiharkan tatasusunan saiz 'len' ini akan menjadikan operasi kami lebih cepat.

Kami mempunyai 3 elemen "div". Oleh itu, kami mendapat tatasusunan saiz 3 seperti yang ditunjukkan dalam output.

Gunakan fungsi Array.from()

Kaedah ini boleh digunakan untuk mencipta tika Array bagi objek boleh lelar atau objek seperti tatasusunan. Kami sedang menukar NodeList, yang mempunyai struktur yang serupa dengan tatasusunan.

Dengan ES6 (ECMAScript 6), kita boleh mendapatkan tatasusunan daripada NodeList dengan sangat mudah menggunakan fungsi Array.from(). Jika kita tidak mahu mengulangi NodeList dan hanya mahu menukarnya, maka ini akan menjadi cara terpantas.

Tatabahasa

const nodeList = document.querySelectorAll('p');
let arr = Array.from(nodeList);
Salin selepas log masuk

Di sini kami telah mencipta NodeList pemilih jenis "p" menggunakan document.querySelectorAll() kaedah Document. Kami menghantar NodeList ini sebagai parameter ke dalam fungsi Array.from(). Fungsi ini mengembalikan tatasusunan. Kami hanya memerlukan satu baris kod untuk menukarnya kepada tatasusunan, yang menjadikannya mudah diingat dan difahami.

Contoh

Dalam contoh di bawah, kami mencipta NodeList pemilih jenis "p". Kami menukar NodeList ini kepada tatasusunan menggunakan fungsi Array.from().

<html>
<body>
   <h2> Convert JavaScript NodeList to Array </h2>
   <p> We are here to teach you various concepts of Computer Science through our articles.</p>
   <p>Stay connected with us for such useful content.</p>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById("output");
      output.innerHTML = " <b> Output of <i> NodeList </i> <b> <br> <br> ";
      
      //get NodeList of 'p' elements
      const nodeList = document.querySelectorAll('p');
      
      //Display output of NodeList
      output.innerHTML += nodeList + "<br> <br>";
      output.innerHTML += " <b> Output of <i> Array </i> <b> <br> <br> ";
      
      //This will convert NodeList to Array
      let arr = Array.from(nodeList);
      
      //Display output of Array
      output.innerHTML += arr;
   </script>
</body>
</html>
Salin selepas log masuk

Dalam output di atas, pengguna melihat bahawa kami mendapat tatasusunan yang mengandungi 2 elemen "p". Oleh itu, NodeList kami berjaya ditukar kepada tatasusunan menggunakan hanya satu panggilan fungsi.

NOTA - Kaedah di atas berfungsi dengan baik dalam semua pelayar moden tetapi mungkin tidak berfungsi dengan betul dalam pelayar lama.

Kami telah belajar untuk menukar NodeList kepada Array. Cara pertama ialah menggunakan gelung for dengan mengulangi NodeList. Cara kedua ialah menggunakan kaedah Array.from(). Apabila pengguna hanya mahu menukar NodeList, dan bukannya mengulanginya, adalah disyorkan untuk menggunakan kaedah Array.from().

Atas ialah kandungan terperinci Cara terpantas untuk menukar NodeList JavaScript kepada Array. 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!