2014-06-16 5 views
0

간단한 JavaScript 질문이 있습니다. '\ n'으로 구분 된 두 개의 행이 있고 각 숫자가 ','로 구분되는 문자열에서 숫자를 추출하려고합니다.배열에서 숫자 추출 JavaScript

첫 번째 인스턴스에서는 첫 번째, 두 번째, 세 번째, 네 번째 및 다섯 번째 숫자를 가져 오려고합니다. 두 번째 경우에는 첫 번째와 여섯 번째 숫자가 필요합니다. 지금까지

내 코드 :

var str = "1391,15,48,58,75,9300\n1687,76,65,23,34,9111"; 
var lines = str.split('\n'); 

$.each(lines, function() { 
var items = str.split(','); 

    var foo = [], 
    bar = [], 
    foobar = str.length; 

    for (i = 0; i < foobar; i++) { 
     foo.push([parseFloat(str[i][0]), 
        parseFloat(str[i][1]), 
        parseFloat(str[i][2]), 
        parseFloat(str[i][3]), 
        parseFloat(str[i][4]) 

     ]); 

      bar.push([parseFloat(str[i][0]), 
        parseFloat(str[i][5]) 
      ]); 

    } 
}); 

코드는 작동하지 않습니다. 나는 쓰레기 만 꺼내. 내가 뭘 놓치고 있니?

편집 :

는,이 코드는 지금

Vergilius 대답을 보완하기 위해 작동 :

var str = "1391,15,48,58,75,9300\n1687,76,65,23,34,9111"; 
var lines = str.split('\n'); 

var foo = []; var bar = []; 

for(var i = 0; i < lines.length; i++){ 

var items = lines[i].split(','); 

foo.push([parseFloat(items[0]), 
    parseFloat(items[1]), 
    parseFloat(items[2]), 
    parseFloat(items[3]), 
    parseFloat(items[4]) 
]); 

bar.push([parseFloat(items[0]), 
    parseFloat(items[5]) 
]); 
} 
+3

'str.length'를 사용하지 마십시오. 대신'items.length'를 사용할 수 있습니다. – simonzack

+1

"쓰레기"를 보여주십시오. –

답변

0
var str = "1391,15,48,58,75,9300\n1687,76,65,23,34,9111", 
    lines = str.split('\n'), i, tmp, foo = [], bar = []; 

for(i = 0; i <= lines.length - 1; i++) { 
    tmp = lines[i].split(','); 
    foo = tmp.filter(function(value, key) { if(key < 5) return true }); 
    bar = tmp.filter(function(value, key) { if(key == 0 || key == 5) return true }); 

} 

괜찮을해야하지만, 당신이 (다른 루프를 시도) 항목을 분석하는 것은 여전히 ​​필요

+0

감사합니다. 이제 알았어. – ljnissen