算法:js翻转数组 - 前端笔记-js翻转数组 reverse()方法翻转 反向添加数组 数组首尾交换 &...

学习笔记

点滴记忆
回忆过往
首页>> 算法 >>算法:js翻转数组 - 前端笔记
2022-8-16
分类: 算法

算法:js翻转数组

文章作者:痴迷

js翻转数组     reverse()方法翻转     反向添加数组     数组首尾......

js翻转数组
  1.     reverse()方法翻转
  2.     反向添加数组
  3.     数组首尾交换
  4.     unshift()向数组头部添加

考点:在 数组首尾交换,reverse()方法肯定不是,是js方法,反向添加数组 和 unshift()向头部添加数组 一样是 利用了新数组,只有数组首尾交换是在 当前数组上操作

1. reverse() 
利用 js方法reverse()方法翻转数组,就一句话
/**
 * js的reverse()方法 翻转数组
 * @param arr
 * @returns {*}
 */
function f1(arr) {
    return arr.reverse()
}
2. 反向添加数组
创建空数组,循环遍历,从原数组的最高值通过 索引 插入到 数组
/**
 * 反向添加数组
 * @param arr
 * @returns {*[]}
 */
function f2(arr) {
    let newArr = []
    for (let i = 0; i < arr.length; i++) {
        newArr[arr.length - 1 - i] = arr[i]
    }
    return newArr
}
3. 数组首尾交换
把数组的索引0  和 数组的长度-1 进行交换
【注意:首尾交换,交换到arr长度一半的时候就交换成功,继续交换就又交换回来了】
/**
 * 数组首尾交换元素
 *
 * 注意:首尾交换,交换到arr长度一半的时候就交换成功
 * 让交换走玩 相当于 又交换回来了
 * @param arr
 * @returns {*}
 */
function f3(arr) {
    // 在首尾交换的变量时候,在交换到arr.length一半的时候数组已经翻转成功
    // 必须取一半就停止交换,不然 数组继续交换 就是没换了
    // 因此 在这里借助一下 变量j ,每次循环j-1  直到i 大于j 说明刚好走了一半了
    let j = arr.length - 1
    for (let i = 0; i < arr.length; i++) {
        console.log(`循环:${i}    ${arr[i]}  ${arr[arr.length - 1 - i]}  ${arr}`)
        let temp = arr[i]
        arr[i] = arr[j]
        arr[j] = temp
        j--
        if (i > j) {
            break
        }
    }
    return arr
}
4. unshift()向数组头部添加
每次循环是0开始,利用unshift()从头部开始插入,实现翻转数组效果
/**
 * 利用unshift() 向数组头部插入元素
 *
 * 解析:每次循环是0开始,利用unshift()从头部开始插入,实现翻转数组效果
 * @param arr
 * @returns {*[]}
 */
function f4(arr) {
    let newArr = []
    arr.forEach(v => {
        newArr.unshift(v)
    })
    return newArr
}

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:前端笔记 » 算法:js翻转数组

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)