2

文字列 ("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 は常に未定義です。私の間違いはどこですか?

4

1 に答える 1

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

ループ内で置き換えたことに注意して<=ください。<

また、最新のブラウザでは、マップ機能を使用して簡単にすることができます。

function stringToIntArray(string) {
    return string.split(',').map(function(v){ return parseInt(v, 10) });
}
于 2013-04-03T08:13:09.907 に答える