3 回答
TA贡献2065条经验 获得超14个赞
您在保存数组的值之前覆盖了数组的第二个元素,因此[1]使用您的方法时 at 的值将永远丢失。
您可以先保存该值,然后将其分配给arr[0]
function swap(arr) {
const item1 = arr[1];
arr[1] = arr[0];
arr[0] = item1;
return arr;
}
console.log(swap([1, 2, 3, 4]));
或者,更优选地,使用解构来避免需要单独的变量:
const swap = ([item0, item1, ...rest]) => [item1, item0, ...rest];
console.log(swap([1, 2, 3, 4]));
或者,如果您必须改变现有数组:
function swap(arr) {
[arr[0], arr[1]] = [arr[1], arr[0]];
return arr;
}
console.log(swap([1, 2, 3, 4]));
TA贡献1794条经验 获得超8个赞
您需要一个临时变量,而不是数组而不是循环来执行此操作
var temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
TA贡献1818条经验 获得超3个赞
tempArr并且arr是对同一对象的引用(您可以在此处了解更多信息)。
在您的情况下,您不需要使用第二个数组,您只需要存储一个临时值,因此您可以执行以下操作:
var temp = arr[i + 1]
arr[i + 1] = arr[i]
arr[i] = temp
添加回答
举报
