1

私は次の配列を持っています...

var arr = [1,2,3,4,5,6,7,8,9] 

私はそれを次のように変換する必要があります...

var newArr = [
    [1,4,7],
    [2,5,8],
    [3,6,9],
];

これは可能ですか?

4

1 に答える 1

4

確かに可能です。このようなものが機能するはずです。

function manipulate(array, amount) {
    // The array to return
    var ret = [];

    // Add the first few values to the array
    // ret = [[1],[2],[3]];
    for (var i=0;i<amount;i++) {
        ret.push([array.shift()]);
    }

    // Now push the last few values on there.
    for (var i=0;array.length;i = ++i % amount) {
        ret[i].push(array.shift());
    }

    return ret;
}

そしてそれを次のように呼び出します。

manipulate(arr, 3);
于 2012-07-19T10:47:44.210 に答える