为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

www说 2022-06-05 10:26:40
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 个元素吗?
查看完整描述

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]));


查看完整回答
反对 回复 2022-06-05
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您需要一个临时变量,而不是数组而不是循环来执行此操作


var temp = arr[0];

arr[0] = arr[1];

arr[1] = temp;


查看完整回答
反对 回复 2022-06-05
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

tempArr并且arr是对同一对象的引用(您可以在此处了解更多信息)。


在您的情况下,您不需要使用第二个数组,您只需要存储一个临时值,因此您可以执行以下操作:


var temp = arr[i + 1]

arr[i + 1] = arr[i]

arr[i] = temp


查看完整回答
反对 回复 2022-06-05
  • 3 回答
  • 0 关注
  • 232 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号