JS翻转数组

js翻转数组

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


考点:在 数组首尾交换,reverse()方法肯定不是,reverse()是js方法,反向添加数组 和 unshift()向数组头部添加元素, 创建了新数组空间,只有数组首尾交换是在 当前数组上操作,难点也在当前数组上操作。

1. reverse() 

利用 js方法reverse()方法翻转数组,就一句话
/**
 * js的reverse()方法 翻转数组
 * @param arr
 * @returns {*}
 */
function f1(arr) {
    return arr.reverse()
}

2. 反向添加数组

创建空数组,循环遍历,从原数组的长度-1,通过 索引 插入到 新数组

/**
 * 反向添加数组
 * @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()向数组头部添加

循环是从 左到右 开始,利用unshift()从头部开始往新数组插入

/**
 * 利用unshift() 向数组头部插入元素
 *
 * 解析:每次循环是0开始,利用unshift()从头部开始插入,实现翻转数组效果
 * @param arr
 * @returns {*[]}
 */
function f4(arr) {
    let newArr = []
    arr.forEach(v => {
        newArr.unshift(v)
    })
    return newArr
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值