JS翻转数组方式
JS翻转数组方式有很多,这里我做一个简单总结。
方法1、直接采取JS提供的API:Array.prototype.reverse
方法2、采用空间+循环+push
方法3、采用空间+循环+unshift
方法4、采用就地翻转
1、直接采取JS提供的API:Array.prototype.reverse
let arr = [1,2,3,4,5]
arr.reverse()
// arr = [5,4,3,2,1]
//or
let arr = [1,2,3,4,5]
Array.prototype.reverse.call(arr)
// arrr = [1, 2, 3, 4, 5]
方法2、采用空间+循环+push
function reverse(arr){
let len = arr.length
let result = []
let index = len-1
while(index>=0){
result.push(arr[index])
index--
}
return result
}
let arr = [1,2,3,4,5]
let a = reverse(arr)
// a=[5, 4, 3, 2, 1]
// 原数组不改变
// arr = [1, 2, 3, 4, 5]
方法3、采用空间+循环+unshift
function reverse(arr){
let result = []
let length = arr.length
let index=0
while( index < length){
result.unshift(arr[index])
index++
}
return result
}
let arr = [1,2,3,4,5]
let a = reverse(arr)
// a=[5, 4, 3, 2, 1]
// 原数组不改变
// arr = [1, 2, 3, 4, 5]
方法4、采用就地翻转
function reverse(arr) {
for (let i = 0; i < Math.floor(arr.length / 2); i++) {
// 解构
[arr[i], arr[arr.length - 1 - i]] = [arr[arr.length - 1 - i], arr[i]]
}
}
let arr = [1,2,3,4,5]
reverse(arr)
// arr