将数组转换为String

时间:2017-07-31 22:05:32

标签: javascript arrays node.js matrix readfile

我有一个包含以下数据的文本文件:

[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);



});

我如何将读取线转换为带数字的数组?

3 个答案:

答案 0 :(得分:2)

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

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

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

console.log(mat);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以将字符串解析为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);

答案 2 :(得分:1)

var matrix = array.map(JSON.parse)

会将您的数组转换为您想要的矩阵。

每一行的字符串都是数字数组的JSON表示,因此当您在每一行上应用JSON.parse时,您将拥有相应的数组。