转换阵列呈现为字符串
问题描述:
我有一个文本文件与以下数据:转换阵列呈现为字符串
[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时,您都有相应的数组。