转换阵列呈现为字符串

问题描述:

我有一个文本文件与以下数据:转换阵列呈现为字符串

[2, 3, 4] 
[1, 3, 2] 

当我看到文件,fs.read我得到的字符串是这样的:

'[2,3,4]' 
'[1,3,4]' 

而且由于该我的矩阵的长度mat是错误的。

代码:

var mat = []; 

var fs = require('fs'); 
fs.readFile('./data/outfilename', function(err, data) { 

    if (err) throw err; 
    var array = data.toString().split(/\r?\n/); 



    for (var i = 0; i < array.length; i++) { 

    if (array[i].length > 0) { 
     mat.push(array[i]); 
    } 
    } 

    console.log(mat.length); 
    console.log(mat[0].length); 



}); 

如何我读线转换为与数字阵列?

您可以解析字符串作为JSON:

// dummy data 
 
var array = ['[2,3,4]', '[18,4,3]']; 
 

 
var mat = []; 
 
for (var i = 0; i < array.length; i++) { 
 
    mat.push(JSON.parse(array[i])); 
 
} 
 

 
console.log(mat);

或者使用map

// dummy data 
 
var array = ['[2,3,4]', '[18,4,3]']; 
 

 
var mat = array.map(JSON.parse); 
 

 
console.log(mat);

您可以使用JSON.parse到字符串转换数组中的数字数组:

var array = ['[2,3,4]', '[1,3,4]']; 
 

 
mat = array.map(s => JSON.parse(s)); 
 

 
console.log(mat);

var matrix = array.map(JSON.parse) 

将改变你的阵列到所需的基质。

每行中的字符串都是数组数组的JSON表示,所以当您在每行上应用JSON.parse时,您都有相应的数组。