簡體   English   中英

在 JavaScript 中將 2D 嵌套數組轉換為 1D 數組?

[英]Convert 2D nested array into 1D array in JavaScript?

給定一個如示例所示的二維數組,如何設法將字符串數字組合成一個。

例如: Array2 = [[1,2,3],[4,5,6],[7,8,9]];

所需的溶膠:

Array1 = [123, 245, 789];

您可以將您的任務分解為兩個獨立的問題,我們將依次解決。

  1. 我們需要獲取一個數字數組(例如[1, 2,3])並將它們連接成一個字符串(例如'123')。

事實上,在 JavaScript 中有一個專用的 function - join() function:

[1, 2, 3].join(''); // '123'
  1. 我們需要對數組中的每個 object 執行前面的 function,返回轉換后的對象數組。

JavaScript 再次為您服務,這次使用 map() function:

[a, b, c].map((element) => foo(element)); // [foo(a), foo(b), foo(c)]

我們現在要做的就是將它們也連接在一起,這樣我們對父數組的每個元素執行的操作就是將所有子元素連接在一起:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]].map((array) => array.join('')); // ['123', '456', '789']

 function foo(arr){ let toReturn = []; for(let i = 0;i < arr.length;i++){ toReturn.push(arr[i].join("")); } return(toReturn); } console.log(foo([[1,2,3],[4,5,6],[7,8,9]]));

您可以使用reduce來聚合您的數據並結合.join('')將每個數組項的所有元素項變成一個值,如下所示:

 const data = [[1,2,3],[4,5,6],[7,8,9]]; const result = data.reduce((acc, curr) => { acc.push(curr.join('')); return acc; }, []); console.log(result);

從給定路徑將所有文件作為一維數組返回

const fetchAllFilesFromGivenFolder = (fullPath) => {
  let files = [];

  fs.readdirSync(fullPath).forEach(file => {
    const absolutePath = path.join(fullPath, file);
    if (fs.statSync(absolutePath).isDirectory()) {
      const filesFromNestedFolder = fetchAllFilesFromGivenFolder(absolutePath);
      filesFromNestedFolder.forEach(file => {
        files.push(file);
      })
    }
    else return files.push(absolutePath);
  });

  return files
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM