转换显示为字符串的数组
Convert Array presented as String
我有一个包含以下数据的文本文件:
[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 时,您就会得到相应的数组。
我有一个包含以下数据的文本文件:
[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 时,您就会得到相应的数组。