首页 > 解决方案 > 将文本文件垂直转换为多维数组(不是逐行)

问题描述

我在一个名为的变量中获取了以下文本文件myText

file.txt:
1,5,9
2,6,0
3,7,0
4,8,0

myText = // content of file.txt

myText我想通过对每列中的元素进行分组来获得一个看起来像这样的二维数组:

my2DArray = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 0, 0, 0],
]

标签: javascriptmultidimensional-array

解决方案


假设所有行的元素个数相同,可以先从文本中构造一个二维数字数组,然后用Array.from来获取每一列的元素。

let myText = `1,5,9
2,6,0
3,7,0
4,8,0`;
const parts = myText.split('\n').map(x => x.split(',').map(Number));
const res = Array.from({length: parts[0].length}, 
   (_,i)=>Array.from({length: parts.length}, (_,j)=>parts[j][i]));
console.log(JSON.stringify(res));


推荐阅读