JS翻转数组

2023-10-26

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
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS翻转数组 的相关文章