首頁 > web前端 > js教程 > 什麼是展平數組以及如何使用 JavaScript 中的遞歸函數來解決展平數組問題?

什麼是展平數組以及如何使用 JavaScript 中的遞歸函數來解決展平數組問題?

王林
發布: 2024-07-24 00:13:23
原創
1157 人瀏覽過

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

介紹:

首先讓我們了解什麼是扁平化數組。扁平數組是一個數組,但這個數組是多維數組、嵌套數組或包含另一個數組的數組的一種形式。

展平是一種有助於將多維數組簡化為一個一維數組(稱為展平)的方法或技術。

有時我們在處理專案或解決問題時需要此類數據,那麼使用扁平數組傳遞資料集組會有所幫助。

範例:

// This is a flattened array
let arr = [1,44, [2, [3,9], 67], 9];
登入後複製

如何解決扁平化數組問題?

解決此類問題的方法有很多種,但在這裡,我將使用遞歸方法進行解釋,這是解決此類問題的最佳方法之一。

在這裡,我不會詳細解釋遞歸,但我會給出一些概述,如果你想了解更多,我會為此創建一個單獨的帖子。

遞歸是一種解決重複類別工作問題的程式設計方法,它直接或間接地呼叫自身,直到不匹配給定的特定條件,如果匹配則函數停止呼叫自身。

 // 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]
登入後複製

以上是什麼是展平數組以及如何使用 JavaScript 中的遞歸函數來解決展平數組問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板