交换二维数组的 2 个元素
Swapping 2 elements of 2D array
我无法根据列值对数组进行排序。我有一个二维数组:
var cl12 = [[9, 10.5], [10, 11.5], [12, 13.5], [12.5, 14.5], [14.5, 15], [16, 18], [16, 17]]
现在你可以在上面的数组中看到,最后一个和倒数第二个元素在第 0 个索引中具有相同的值,但是它们没有根据列排序,因为 [16,18] 应该在 [16,17] 之后。 ..现在我已经写了一个 for 循环来得到一个完整的排序数组,
for(i=0;i<cl12.length;i++){
if((cl12[i][0]==cl12[i+1][0]) && (cl12[i][1]>cl12[i+1][1])){
var temp = cl12[i+1];
cl12[i+1]=cl12[i];
cl12[i] = temp ;
}
}
console.log(cl12)
但它在控制台上给出了一个错误:未捕获的类型错误:无法读取未定义的 属性“0”
您正在将每个元素与索引大一的元素进行比较,因此您应该只循环到比数组长度小一的位置。
for(i=0;i<cl12.length-1;i++){
var cl12 = [[9, 10.5], [10, 11.5], [12, 13.5], [12.5, 14.5], [14.5, 15], [16, 18], [16, 17]]
for(i=0;i<cl12.length-1;i++){
if((cl12[i][0]==cl12[i+1][0]) && (cl12[i][1]>cl12[i+1][1])){
var temp = cl12[i+1];
cl12[i+1]=cl12[i];
cl12[i] = temp ;
}
}
console.log(cl12)
我无法根据列值对数组进行排序。我有一个二维数组:
var cl12 = [[9, 10.5], [10, 11.5], [12, 13.5], [12.5, 14.5], [14.5, 15], [16, 18], [16, 17]]
现在你可以在上面的数组中看到,最后一个和倒数第二个元素在第 0 个索引中具有相同的值,但是它们没有根据列排序,因为 [16,18] 应该在 [16,17] 之后。 ..现在我已经写了一个 for 循环来得到一个完整的排序数组,
for(i=0;i<cl12.length;i++){
if((cl12[i][0]==cl12[i+1][0]) && (cl12[i][1]>cl12[i+1][1])){
var temp = cl12[i+1];
cl12[i+1]=cl12[i];
cl12[i] = temp ;
}
}
console.log(cl12)
但它在控制台上给出了一个错误:未捕获的类型错误:无法读取未定义的 属性“0”
您正在将每个元素与索引大一的元素进行比较,因此您应该只循环到比数组长度小一的位置。
for(i=0;i<cl12.length-1;i++){
var cl12 = [[9, 10.5], [10, 11.5], [12, 13.5], [12.5, 14.5], [14.5, 15], [16, 18], [16, 17]]
for(i=0;i<cl12.length-1;i++){
if((cl12[i][0]==cl12[i+1][0]) && (cl12[i][1]>cl12[i+1][1])){
var temp = cl12[i+1];
cl12[i+1]=cl12[i];
cl12[i] = temp ;
}
}
console.log(cl12)