我有这样的矩阵形式的数组

var costs = [
        [4, 6, 8, 8],
        [6, 8, 6, 7],
        [5, 7, 6, 8],
    ];

我如何将其转换为此
 [[4,6,5], [6,8,7], [8,6,5], [8,7,5]]

这就是尝试
var cols = [];

for(var i = 0; i<costs.length; i++)
{
    cols.push(costs[i][0]);
}

return col;

这给了我[4,6,5]。我知道您缺少任何东西,任何帮助都会很大。谢谢

最佳答案

在第一个循环中需要另一个for循环:



var costs = [
    [4, 6, 8, 8],
    [6, 8, 6, 7],
    [5, 7, 6, 8],
];

alert("Original: " + JSON.stringify(costs));

// Prepare array...
var cols = new Array(costs[0].length);
for(var i = 0; i < costs[0].length; i++) {
    cols[i] = new Array(costs.length);
}

// Assign values...
for(var i = 0; i < costs.length; i++) {
    for(var k = 0; k < costs[i].length; k++) {
        cols[k][i] = costs[i][k];
    }
}

alert("New: " + JSON.stringify(cols));

07-24 09:34