如何在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
相关产品推荐
相关产品推荐

