我有一个简单的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])
]);
}
答案 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 });
}
应该没问题,但你仍然需要解析项目(尝试另一个循环)