Rumah >hujung hadapan web >tutorial js >Apakah tatasusunan rata dan Bagaimanakah cara menyelesaikan masalah tatasusunan rata menggunakan fungsi rekursi dalam JavaScript?

Apakah tatasusunan rata dan Bagaimanakah cara menyelesaikan masalah tatasusunan rata menggunakan fungsi rekursi dalam JavaScript?

王林
王林asal
2024-07-24 00:13:231122semak imbas

What is a flattened array and How do solving flatten array problem using recursion functions in JavaScript?

pengenalan:

Mula-mula Mari faham Apa itu tatasusunan leper. Tatasusunan yang diratakan ialah Tatasusunan, tetapi tatasusunan ini ialah satu bentuk tatasusunan berbilang dimensi, tatasusunan bersarang atau tatasusunan yang mengandungi tatasusunan lain.

Leper ialah satu pendekatan atau teknik yang membantu mengurangkan tatasusunan berbilang dimensi kepada satu tatasusunan satu dimensi yang dikenali sebagai mendatar.

Kadangkala kami memerlukan data sebegini apabila kami sedang mengerjakan projek atau menyelesaikan masalah, maka ia membantu untuk melepasi kumpulan set data menggunakan tatasusunan yang diratakan.

Contoh:

// This is a flattened array
let arr = [1,44, [2, [3,9], 67], 9];

Bagaimana untuk menyelesaikan masalah tatasusunan yang diratakan?

Terdapat pelbagai cara untuk menyelesaikan masalah seperti ini tetapi di sini, saya akan menerangkan menggunakan kaedah Rekursi, ini adalah salah satu pendekatan terbaik untuk menyelesaikan masalah seperti ini.

Di sini, saya tidak akan memperincikan penjelasan Rekursi, Tetapi saya akan memberikan sedikit gambaran tentang, jika anda ingin mengetahui lebih lanjut tentang saya akan membuat siaran berasingan untuk itu.

Rekursi ialah pendekatan pengaturcaraan untuk menyelesaikan isu pengulangan jenis kerja, yang memanggil dirinya secara langsung atau tidak langsung sehingga tidak sepadan dengan syarat tertentu, jika dipadankan maka fungsi itu menghentikan panggilan itu sendiri.

 // This is a flattened array
// Input:
  let arr = [1,44, [2, [3,9], 67], 9];

  // Function Defin 
  function recur(a) {
    let newArr = [];
    for (let i =0 ; i < a.length; i++) {
        const element = a[i];
        if (Array.isArray(element)) {
            // Function calling itself recursion
            newArr.push(...recur(element))
        } else  {
            newArr.push(element)
        }
    }

    return newArr;
  }

console.log(recur(arr))
Output:
[1,44,2,3,9, 67, 9]

// We can also write the same code using for each:
function flattenArray(items) {
    const flat = [];
    items.forEach(item => {
      if (Array.isArray(item)) {
        flat.push(...flatten(item));
      } else {
        flat.push(item);
      }
    });

    return flat;
  }

onsole.log(flattenArray(arr))
output:
[1,44,2,3,9, 67, 9]

Atas ialah kandungan terperinci Apakah tatasusunan rata dan Bagaimanakah cara menyelesaikan masalah tatasusunan rata menggunakan fungsi rekursi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Hari Kod Minggu 4Artikel seterusnya:Hari Kod Minggu 4