猿问

如何使用 for 循环交换数组的前 2 个元素

function swap(arr){

var finalarr = [];

var tempArr = arr;


for(i=0; i<1; i++){

    arr[i + 1] = arr[i];

    arr[i] = tempArr[i + 1];

}

return arr;

}

swap([1,2,3,4])应该是 => [2,1,3,4],但它正在输出 => [1,1,3,4]。


您可以修改此数组以交换数组中的前 2 个元素吗?


www说
浏览 244回答 3
3回答

翻翻过去那场雪

您在保存数组的值之前覆盖了数组的第二个元素,因此[1]使用您的方法时 at 的值将永远丢失。您可以先保存该值,然后将其分配给arr[0]function swap(arr) {&nbsp; const item1 = arr[1];&nbsp; arr[1] = arr[0];&nbsp; arr[0] = item1;&nbsp; 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) {&nbsp; [arr[0], arr[1]] = [arr[1], arr[0]];&nbsp; return arr;}console.log(swap([1, 2, 3, 4]));

幕布斯7119047

您需要一个临时变量,而不是数组而不是循环来执行此操作var temp = arr[0];arr[0] = arr[1];arr[1] = temp;

泛舟湖上清波郎朗

tempArr并且arr是对同一对象的引用(您可以在此处了解更多信息)。在您的情况下,您不需要使用第二个数组,您只需要存储一个临时值,因此您可以执行以下操作:var temp = arr[i + 1]arr[i + 1] = arr[i]arr[i] = temp
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答