2014-01-22 3 views
1

Я пытаюсь сохранить значения X и Y из текстового файла в массиве с помощью NodeJS, но на самом деле я понятия не имею, как это сделать это ..Прочитайте строки текстового файла и сохраните значения x и y в массиве (NodeJS)

текстовый файл выглядит следующим образом:

X  Y 
385  0.12567 
386  0.25786 
387  0.35789 
388  0.45798 
...  ....... 

так что я пытаюсь получить Массивы похожий, что:

arr[x]= 385, 386, 387, 388 ... 
arr[y]= 0.12567, 0.25786, 0.35789, 0.45798 .. 

Я надеюсь, что вы можете мне помочь!

JS

ответ

2

Вы могли бы сделать что-то вроде этого:

var fs = require('fs'); 

function readLines(input, done) { 
    var arr = []; 
    var remaining = ''; 

    input.on('data', function(data) { 
     remaining += data; 
     var index = remaining.indexOf('\n'); 
     while (index > -1) { 
      var line = remaining.substring(0, index); 
      remaining = remaining.substring(index + 1); 
      func(line); 
      index = remaining.indexOf('\n'); 
     } 
    }); 

    input.on('end', function() { 
     if (remaining.length > 0) { 
      func(remaining); 
      done(arr); 
     } 
    }); 

    function func(data) { 
     arr.push(data.split(/\s+/g)); 
    } 
} 

var input = fs.createReadStream('test.txt'); 
readLines(input, done); 

function done(arr) { 

    var obj = {}; 
    var key1 = arr[0][0]; 
    var key2 = arr[0][1]; 
    obj[key1] = []; 
    obj[key2] = []; 

    arr.shift(); 

    arr.forEach(function (item) { 
     obj[key1].push(item[0]); 
     obj[key2].push(item[1]); 
    }); 

    console.log('X:', obj['X']); 
    console.log('Y:', obj['Y']) 
} 

Выход:

X: [ '385', '386', '387', '388' ] 
Y: [ '0.12567', '0.25786', '0.35789', '0.45798' ] 


См: node.js: read a text file into an array. (Each line an item in the array.)

Смежные вопросы