You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中交换两个数组指定索引位置的元素?

交换两个数组指定索引元素的最简实现方式

要实现你需要的功能,用JavaScript的解构赋值是最简洁的方案,不需要额外临时变量,代码直观易懂:

允许修改原数组的版本(最简)

数组是引用类型,这种方式直接操作原数组,执行后原数组会同步更新:

function swap(idxA, arrA, idxB, arrB) {
  [arrA[idxA], arrB[idxB]] = [arrB[idxB], arrA[idxA]];
  return { a: arrA, b: arrB };
}

不修改原数组的版本(纯函数风格)

如果需要保留原数组不变,可以先浅拷贝数组再执行交换:

function swap(idxA, arrA, idxB, arrB) {
  const newA = [...arrA];
  const newB = [...arrB];
  [newA[idxA], newB[idxB]] = [newB[idxB], newA[idxA]];
  return { a: newA, b: newB };
}

测试示例

用你提供的数组验证效果:

const a = [0,1,3];
const b = [7,2,6,4];
const result = swap(1, a, 3, b);
console.log(result); // 输出 { a: [0,4,3], b: [7,2,6,1] }

解构赋值是ES6+的标准语法,目前主流JavaScript环境都支持,这是实现此类交换逻辑最简洁的写法。

内容的提问来源于stack exchange,提问作者Alexander Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 22:25:28