如何用 JavaScript 中的空值交换数组的两个元素?

How to swap two elements of an array with empties in JavaScript?

我有一个数组,我想交换数组中的两个元素。如果数组非空,我可以简单地做:

const swap = (arr, a, b) => {
    const temp = arr[a]
    arr[a] = arr[b]
    arr[b] = temp
}

并且该函数可以正确交换数组 arr.

中索引 ab 的值

但是,如果数组中有一些空元素,比如[1, , , ,],那么swap的结果就是[undefined, empty, 1, empty],而预期的结果应该是[=19] =].那么我该如何修改 swap 函数才能使结果正确。或者有什么方法可以使数组中的特定索引为空?

同样失败:

const swap = (arr, a, b) => {
    const temp = arr[a]
    arr.splice(a, 1, arr[b])
    arr.splice(b, 1, temp)
}

原题:

我有一个长度为 4 的数组 let arr = [1, , , ,](它将在控制台中显示 [1, empty × 3]),我想将第一个元素移动到第三个元素,即:[empty × 2, 1, empty] .我该如何实现?

我试过splice直接给数组赋值,但是不行。

您确实需要 splice - 结合 shift 得到第一项

let arr = [1, , , ,]

console.log(arr)

arr.splice(2, 0, arr.shift());
console.log(arr)