前置知识
arr.reverse() 实现的只是浅反转,只会反转第一维的数据
let arr = [1, [2, 3], [4, 5, [6, 7, 8]]]
const arrRev = arr.reverse()
console.log(arr) // [[4, 5, [6, 7, 8]], [2, 3], 1]
// 注意:reverse() 方法会改变原数组
console.log(arrRev) // [[4, 5, [6, 7, 8]], [2, 3], 1]
手写深反转
const deepReverse = (arr) => {
let temp = arr.reverse()
temp.forEach(val => {
if(Object.prototype.toString.call(val) === "[object Array]"){
deepReverse(arr)
}
})
return temp
}
let arr = [1, [2, 3], [4, 5, [6, 7, 8]]]
console.log(arr) // [[[8, 7, 6], 5, 4], [3, 2], 1]