使用分号行拆分csv文件会在javascript中将其拆分为2d数组(节点)

使用分号行拆分csv文件会在javascript中将其拆分为2d数组(节点),javascript,node.js,arrays,csv,file,Javascript,Node.js,Arrays,Csv,File,我有这样的数据: data = "1 2 3; 2 3 4; 5 6 7; 8 9 10;" 我希望数据如下所示: [ [1,2,3], [2,3,4], [5,6,7], [8,9,10] ] 我尝试过这种方法,但没有效果: var data = fs.readFileSync('data.txt', 'utf8') var two_dim_array = []; var current_row_as_array = []; for(var i=0;i

我有这样的数据:

data = 
"1 2 3;
2 3 4;
5 6 7;
8 9 10;"
我希望数据如下所示:

[
  [1,2,3],
  [2,3,4],
  [5,6,7],
  [8,9,10]
]
我尝试过这种方法,但没有效果:

var data = fs.readFileSync('data.txt', 'utf8')
var two_dim_array = [];
var current_row_as_array = [];
for(var i=0;i<4;i++){
    data = data.split(";\n");
    data[i] = [];
    for(var j=0;j<data[i].length;j++){
        current_row_as_array = data[i].split(" ")
    }
    two_dim_array.push(current_row_as_array);
}
console.log(two_dim_array);
var data=fs.readFileSync('data.txt','utf8')
var two_dim_数组=[];
var当前行作为数组=[];
对于(var i=0;i),您可以将原始数据拆分为<代码>;<代码>(接着是可选的空白,例如换行符-这是最容易用正则表达式完成的);从该数组中删除空白条目(由尾随<代码>;字符串中);然后使用应用
String.split
按空格拆分这些字符串;最后使用
Array.map
使用
parseInt
将这些值转换为整数:

const data=“1 2 3\
2 3 4;\
5 6 7;\
8 9 10;"
常量结果=数据
.split(/;\s*/)
.filter(布尔值)

.map(s=>s.split(“”).map(v=>parseInt(v));console.log(result);
外部循环的目的是什么?
2
从何而来?设置
数据[i]=[];
数据[i]的目的是什么.length
此后将始终为
0
,因此内部循环永远不会执行。即使如此,
当前行作为数组将在内部循环的每次迭代中被覆盖。您需要重新考虑您的逻辑。熟悉并使用可用的方法。