分割后数组长度未定义

时间:2013-04-03 08:11:59

标签: javascript split

我想拆分一个字符串(“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总是不确定的。哪里是我的错?

1 个答案:

答案 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) });
}