我正在尝试重新排列数组数组中的元素但是不成功。有人可以提供建议吗?这是我尝试过的两个选项。我想交换/切换第一个和第二个元素的位置。
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);
答案 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();
}