我想拆分一个字符串(“1,2,3”)并将其作为一个int数组返回,所以我编写了以下函数:
function stringToIntArray(string) {
var split = {};
split = string.split(',');
var selected = {};
for (var i = 0; i <= split.length; i++) {
selected[i] = split[i];
}
return selected;
}
然而,split.length总是不确定的。哪里是我的错?
答案 0 :(得分:3)
var selected = {};
不构建数组,而是构建没有length
属性的对象。
您可以通过将代码替换为
来修复代码var selected = [];
如果要返回一组数字,可以将代码更改为
function stringToIntArray(string) {
var split = string.split(',');
var selected = [];
for (var i = 0; i < split.length; i++) {
selected.push(parseInt(split[i], 10));
}
return selected;
}
请注意,我在循环中将<=
替换为<
。
另请注意,对于现代浏览器,您可以使用map函数使其更简单:
function stringToIntArray(string) {
return string.split(',').map(function(v){ return parseInt(v, 10) });
}