[英]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.