从数组JavaScript中提取数字

时间:2014-06-16 18:45:52

标签: javascript

我有一个简单的JavaScript问题。我试图从字符串中提取数字,其中有两行用'\ n'分隔,每个数字用','分隔。

在第一个例子中,我想得到第一个,第二个,第三个,第四个和第五个数字。在第二个例子中,我想要第一个和第六个数字。

到目前为止我的代码:

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])
]); 
}

1 个答案:

答案 0 :(得分: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 });

}

应该没问题,但你仍然需要解析项目(尝试另一个循环)