创建每个数组的第一个元素的数组

时间:2015-02-24 12:00:09

标签: javascript arrays

我有像这样的形式的数组

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]。我知道我错过了什么,任何帮助都会很棒。感谢

1 个答案:

答案 0 :(得分:2)

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

&#13;
&#13;
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));
&#13;
&#13;
&#13;