如何用 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
.
中索引 a
和 b
的值
但是,如果数组中有一些空元素,比如[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)
我有一个数组,我想交换数组中的两个元素。如果数组非空,我可以简单地做:
const swap = (arr, a, b) => {
const temp = arr[a]
arr[a] = arr[b]
arr[b] = temp
}
并且该函数可以正确交换数组 arr
.
a
和 b
的值
但是,如果数组中有一些空元素,比如[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)