手写数组方法(八):reverse

490 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情

我们在实际开发中,使用数组翻转的机会还是挺多的,今天带大家来深入学习数组reverse,并手写之~

语法

array.reverse()

参数

数组的该方法没有参数

返回值

返回颠倒顺序后的数组

let list = [1, 2, 3];
let res = list.reverse();
console.log(res);

image.png

不会颠倒二维数组,只颠倒一维数组里的元素:

image.png

手写

for循环倒序法

Array.prototype._reverse = function () {
    let res = [];
    for (let i = this.length - 1; i >= 0; i--) {
        res.push(this[i]);
    }
    return res;
};

unshift法

数组的unshift方法可以从数组头部添加元素,这样先添加的元素就会落在最后面,从而实现了颠倒数组

Array.prototype._reverse = function() {
    let res = [];
    this.forEach(item => {
        res.unshift(item);
    });
    return res;
}

测试

[1, 2, 3]._reverse();

image.png

使用场景

反转字符串

let str = 'abc';
let res = str.split('').reverse().join('');
console.log(res);

split是将字符串转化成数组,然后使用reverse翻转数组,再用数组的join方法将数组转化成字符串

image.png

数组倒序

如果给定一个排好序的数组,那么将数组倒序可以直接使用reverse方法一把梭:

let list = [1, 2, 3, 4, 5];
let res = list.reverse();
console.log(res);

image.png

注意

数组的reverse方法会修改原数组,在日常使用中一定要注意:

let list = [1, 2, 3];
list.reverse();
console.log(list);

image.png

结语

今天关于数组reverse的介绍就讲到这里,关注我获取更多有关数组方法的讲解,后续会持续更新。我是末世未然,一个爱折腾的新晋奶爸,祝好