9

for配列を返すループがあります。

戻る:

1st loop:
arr[0]
arr[1]
arr[2]
arr[3]

ここで私が得る長さは4(問題ではありません)です。

戻る:

2nd loop
arr[4]
arr[5]
arr[6]
arr[7] 
arr[8] 

ここで私が得る長さは です9

ここで必要なのは、インデックスの実際の数です。つまり、必要5です。これどうやってするの。0そして、すべてのループで適切な長さになるように、開始するたびに各ループに入る方法はありますか?

4

4 に答える 4

36

これは、Array.filter を使用してネイティブで簡単に実行できます。

resetArr = orgArr.filter(function(){return true;});
于 2013-12-14T18:28:39.770 に答える
4

配列からすべての要素を、インデックスがゼロから始まる新しい配列にコピーするだけで済みます。

例えば

function startFromZero(arr) {
    var newArr = [];
    var count = 0;

    for (var i in arr) {
        newArr[count++] = arr[i];
    }

    return newArr;
}

// messed up array
x = [];
x[3] = 'a';
x[4] = 'b';
x[5] = 'c';

// everything is reordered starting at zero
x = startFromZero(x);
于 2012-07-10T13:13:41.143 に答える