Node.js将每一行分隔成一个整数数组

时间:2016-02-02 23:09:20

标签: javascript arrays node.js

我正在尝试访问一个文本文件并拥有一个数组,并且每行都是一个数字数组。

它返回node.js

9235
9096 637

我希望它返回

[[9235],
[[9096],[637]]

Index.js

console.log("Hello World");
var fs = require('fs');
var array = fs.readFileSync('txt/numbers.txt').toString().split("\n");
for(i in array) {
    console.log(array[i]);
}

numbers.txt

9235 
9096 637 

3 个答案:

答案 0 :(得分:0)

遍历这些行,然后使用.split(" ")获取数字数组,并将它们推送到数组。

console.log("Hello World");
var fs = require('fs');
var lines = fs.readFileSync('numbers.txt', 'utf8').split("\n");

var result = [];
for(var i = 0; i < lines.length; i++) {
    //push each line as an array of numbers
    result.push(lines[i].trim().split(" ").map(Number)); 
                                         // ^ convert items to integer
}

console.log(JSON.stringify(result)); //[[9235],[9096,637]]

答案 1 :(得分:0)

这是一种简单的方法。

            var ar = ["9235", "9096 637"];

            for (var i in ar) {
                var e = ar[i];
                if (e.indexOf(" ") > -1) {
                    ar[i] = e.split(" ");
                } else {
                    ar[i] = new Array(e);
                }
            }
            console.log(JSON.stringify(ar));

答案 2 :(得分:0)

如果其他答案不正确,并且您实际上想要每行的数组数组:

array.map(function(line) {
    return line.match(/\d+/g).map(function (n) {
        return [+n];
    });
});