1

私はこれに頭を悩ませています。arr配列と整数を取り、元の配列nの各 n 番目の要素 (インデックス 0 から始まる) で構成される新しい配列を出力し、必要に応じて最後に到達したときに最初に戻る関数を作成しようとしています。 .

例えば:

arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
output = [0, 3, 6, 9, 1, 4, 7, 2, 5, 8]

または :

arr = [0, 1, 2, 3, 4, 5, 6]
n = 2
output = [0, 2, 4, 6, 1, 3, 5]
4

1 に答える 1

4

これはうまくいくはずです:

function get_n_elements(arr, n) {
    if ( n === 1 ) return arr.slice();
    var i, j,
        len = arr.length,
        ret = [];
    for ( i = 0; i < n; i++ ) {
        for ( j = i; j < len; j += n ) {
            ret.push( arr[ j ] );
        }
    }
    return ret;
}
于 2012-04-10T13:35:32.687 に答える