转换显示为字符串的数组

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 时,您就会得到相应的数组。