js反转数组的几种方法

js反转数组的几种方法

js反转数组的几种方法。

  1. reverse()

reverse() 会改变原数组,不会返回新数组。

1
2
3
4
let arr = [1, 2, 3, 4];

arr.reverse();
// [4, 3, 2, 1]
  1. reverse()配合展开符...

这种方法不会改变原数组。

1
2
3
4
5
let arr = [1, 2, 3, 4];

// 这里使用展开符产生了一个新数组实例,这个实例和arr一模一样,然后反转这个新数组实例并赋值给一个变量
let new_arr = [...arr].reverse();
// [ 4, 3, 2, 1 ]
  1. slice()配合reverse()
1
2
3
let arr = [1, 2, 3, 4];

let new_arr = arr.slice().reverse();
  1. reduce()配合...
1
2
3
4
5
let arr = [1, 2, 3, 4];

let new_arr = arr.reduce(function(acc, val) {
return [val, ...acc]
});

同理可以使用 reduceRIght...

  1. 遍历每个元素
1
2
3
4
5
6
7
let arr = [1, 2, 3, 4];

let new_arr = [];

for (let i = arr.length - 1; i >= 0; i--) {
new_arr.push(arr[i]);
}
  1. 手动反转

会改变元数组。

1
2
3
4
5
6
7
const reverseArray = function(arr) {
for (let i = 0, len = arr.length; i < len / 2; i++) {
let cur = arr[i];
arr[i] = arr[len - 1 - i];
arr[len - 1 - i] = cur;
}
}

评论