JavaScript 中攤平成具有文字含義的深度巢狀陣列


我們要求編寫一個 JavaScript 函式,它以巢狀陣列字面量作為唯一引數。該函式應該構建一個新陣列,其中包含輸入陣列中存在的所有字面量元素,但不巢狀。

例如 -

如果輸入陣列是 -

const arr = [
   1, 3, [5, 6, [7, [6, 5], 4], 3], [4]
];

那麼輸出陣列應該是 -

const output = [1, 3, 5, 6, 7, 6, 5, 4, 3, 4];

示例

以下是該程式碼 -

const arr = [
   1, 3, [5, 6, [7, [6, 5], 4], 3], [4]
];
const flattenArray = (arr = []) => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      if(Array.isArray(el)){
         res.push(...flattenArray(el));
      }else{
         res.push(el);
      };
   };
   return res;
};
console.log(flattenArray(arr));

輸出

以下是控制檯上的輸出 -

[
   1, 3, 5, 6, 7,
   6, 5, 4, 3, 4
]

更新於:2020 年 12 月 11 日

324 次瀏覽

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.