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?

王林
Lepaskan: 2024-07-24 00:13:23
asal
1124 orang telah melayarinya

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

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

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!

sumber:dev.to
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