js反转数组的几种方法。
reverse()
reverse()
会改变原数组,不会返回新数组。
1 2 3 4
| let arr = [1, 2, 3, 4];
arr.reverse();
|
reverse()
配合展开符...
这种方法不会改变原数组。
1 2 3 4 5
| let arr = [1, 2, 3, 4];
let new_arr = [...arr].reverse();
|
slice()
配合reverse()
1 2 3
| let arr = [1, 2, 3, 4];
let new_arr = arr.slice().reverse();
|
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 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 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; } }
|