重新排列数组数组的元素

时间:2015-04-28 19:15:45

标签: javascript arrays

我正在尝试重新排列数组数组中的元素但是不成功。有人可以提供建议吗?这是我尝试过的两个选项。我想交换/切换第一个和第二个元素的位置。

arr1是一个数组数组(即arr [] [])所以我创建了arr2作为更新的arr1

var arr2 = [];

for (var n = 0; n <arr1.length; n++){
  arr2[n][0] = arr1[n][1];
  arr2[n][1] = arr1[n][0];

}

我尝试的另一件事是:

function order(arr[]){
  return [arr[n][1],arr[n][0], arr[n][2], arr[n][3]];
}

var arr2 = order(arr1);

3 个答案:

答案 0 :(得分:2)

您还需要为每个项目创建一个新数组:

var arr2 = [];
for(var n = 0; n < arr1.length; n++) {
  arr2[n] = [arr1[n][1], arr1[n][0]];
}

答案 1 :(得分:1)

您需要为交换机使用临时变量的第一个示例:

var arr2 = [];

for (var n = 0; n <arr1.length; n++){
  var tempVal = arr1[n][1];
  arr2[n][1] = arr1[n][0];
  arr2[n][0] = tempArr;
}

第二个例子,在JS中变量不应该在它旁边有括号,因为它只是一个松散类型的变量名。

function order(arr){
  return [arr[n][1],arr[n][0], arr[n][2], arr[n][3], arr[n][4]];
}

var arr2 = order(arr1);

下次,在询问之前,您应该检查控制台。 stackoverflow wiki page on JS有很多很好的资源来学习调试JS。

答案 2 :(得分:1)

这很容易:

var a = arr1[n][0];
arr2[n][0] = arr1[n][1];
arr2[n][1] = a;

你需要将第一个值保存为变量,因为如果你这样做(arr2 [n] [0] = arr1 [n] [1];),你的两个数组索引将具有相同的值。

你做了:

a = 1, b = 2;
a = b;
b = a;

其中a = 2,b = 2

此外,您现在的代码不起作用。您需要在javascript中创建一个用于模拟多维数组的新数组。

for(i = 0; i < (yourdesiredamountofarrays); i++)
{
    yourarray[i] = new Array();
}