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 回答