[英]Convert 2D nested array into 1D array in JavaScript?
給定一個如示例所示的二維數組,如何設法將字符串數字組合成一個。
例如: Array2 = [[1,2,3],[4,5,6],[7,8,9]];
所需的溶膠:
Array1 = [123, 245, 789];
您可以將您的任務分解為兩個獨立的問題,我們將依次解決。
事實上,在 JavaScript 中有一個專用的 function - join() function:
[1, 2, 3].join(''); // '123'
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.