在Javascript中交换数组元素

时间:2012-04-09 19:13:40

标签: javascript arrays

我有一个这样的数组 - (我不知道这个数组的长度)

data: [[3, 1], [1, 1], [5, 1], [6, 1], [25, 1], [8, 2], [2, 3]]

我怎么可以交换它所以它变成这样:

data: [[1, 3], [1, 1], [1, 5], [1, 6], [1, 25], [2, 8], [3, 2]]

谢谢!

3 个答案:

答案 0 :(得分:4)

每个元素都是一个数组,因此您可以在其上应用反向。

for(i = 0; i < data.length; i++) data[i].reverse();

答案 1 :(得分:2)

var i, temp;

for(i = 0; i < data.length; i++) {
    temp = data[i][0];

    data[i][0] = data[i][1];
    data[i][1] = temp;
}

答案 2 :(得分:0)

var data = [[3, 1], [1, 1], [5, 1], [6, 1], [25, 1], [8, 2], [2, 3]];
data = data.map(function(x){ // loop though all elements
    return x.reverse(); // reverse each array
});

Arary.map适用于所有现代浏览器(我的意思是你需要Chrome,Firefox,Safari,Opera或IE9 +)。

编辑:由于Array.reverse会改变数组,你也可以这样做:

var data = [[3, 1], [1, 1], [5, 1], [6, 1], [25, 1], [8, 2], [2, 3]];
data.forEach(function(x){ // loop though all elements
    x.reverse(); // reverse each array
});

Array.forEach适用于.map工作的“同步”浏览器。