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翻转数组 的相关文章

随机推荐

  • ORB-SLAM2第二节---双目地图初始化

    比起单目初始化 而双目实现地图的初始化非常简单 只需要一帧 左右目图像 即可完成初始化 行特征点统计 考虑用图像金字塔尺度作为偏移量 在当前点上下正负偏移量 r 内的纵坐标值都认为是匹配点可能存在的行数 之所以这样做 是因为极线矫正后仍然存
  • 创建steam账户反复人机验证_您必须先通过人机验证才能创建steam帐户怎么办

    展开全部 在注册steam帐户遇到提示必须通过人机验证才能创建62616964757a686964616fe4b893e5b19e31333433643062提示时 勾选注册页面中的进行人机验证 在人机身份验证界面中点击需要的图片并按照步骤
  • socket接收报错

    首先是没得到正确错误号 是因为windows平台WSAGetLastError得过之后就没了 所以需要int变量保存一下 发现错误号后知道是最后一个参数没有初始化复制 bzero buf sizeof buf bzero cli adr s
  • PostgreSQL 多表关联删除

    用PostgreSQL数据库删除某个表数据 student 需要关联多个表 如classroom 作为条件 以下语句走不通 delete s from student s classroom c where s cid c id and s
  • JPA基本数据类型映射

    Employ author Administrator Entity Table name T EMPLOY SequenceGenerator name SEQ sequenceName SEQ SYS FUNC MENU initial
  • 利用MATLAB编写一段表格数据处理并作图

    使用MATLAB处理表格数据并作图可以使用以下步骤 读入表格数据 使用readtable或者xlsread函数读入Excel或者其他格式的表格数据 数据预处理 使用MATLAB的数组运算和统计函数对读入的数据进行预处理 包括清洗缺失值 去除
  • hadoopRPC的使用

    1模拟namenode的查询元数据 public interface ClientNamenodeProtocol public static final long versionID 1L 会读取这个版本号 但可以和客户端的不一样 没有校
  • 【数据结构】树(五)—— 二叉排序树(C语言版)

    数据结构 二叉排序树 C语言版 前言 一 二叉排序树的定义 二 二叉排序树的性质 三 二叉排序树的操作 1 二叉排序树常用存储结构 2 二叉排序树的查找 递归实现 查找 二叉树T 中键值为 key 的节点 非递归实现 查找 二叉树T 中键值
  • java中sum是什么_Java中的IntStream sum()方法

    sum Java中使用IntStream类的方法返回此流中元素的总和 语法如下 int sum 要使用Java中的IntStream类 请导入以下包 import java util stream IntStream 创建IntStream
  • 不知道华为手机识别图片文字怎么弄?2个识别方法收好了

    我们有时候会将书籍上的内容拍照下来进行抄写 但是面对大段的文字 手动抄写会比较花费时间 其实我们可以进行手机识别图片文字 一键进行文字内容提取 这样就方便多了 那你们知道华为手机识别图片文字怎么弄吗 下面我就来分享两个手机识别的方法给大家
  • python安装pip

    pip python2 安装 wget https bootstrap pypa io 2 6 get pip py python2 get pip py pip V pip3 python3 安装 wget https bootstrap
  • 攻防世界PWN新手练习区——cgpwn2

    攻防世界PWN新手练习区 cgpwn2 首先检查文件的有哪些保护 checksec cgpwn2 32位程序 用IDA反编译文件 main函数中只有hello函数 点击查看 整个函数看起来是在进行某种算法 但关键点在于return gets
  • 计算机的起源与发展(概述+习题)

    概述 计算机 computer 也称为 电脑 是一种具有计算功能 记忆功能和逻辑判断功能的机器设备 它能接收数据 保存数据 按照预定的程序对数据进行处理 并提供和保存处理结果 计算机的起源 图灵机 图灵机是一种抽象的计算模型 并没有真正地生
  • H3CNE综合实验

    H3CNE综合实验 实验拓扑 实验需求 按照图示配置IP地址 SW1和SW2之间的直连链路配置链路聚合 公司内部业务网段为Vlan10和Vlan20 Vlan10是市场部 Vlan20是技术部 要求对Vlan 进行命名以便识别 PC1属于V
  • python实现星空效果

    以前用DEV C 这个编译器时 看过easyx 这个C 图形库 文档中有范例程序 是模拟星空的 觉得的不错 今天有空 把Crossin用python写的一个雪花模拟程序 修改了一下 效果和easyx的基本一模一样 使用easyx的 代码 编
  • GMT、UTC与24时区 等时间概念

    许多人都知道两地时间表简称为GMT或UTC 而世界时区表则通称为World Time 那么GMT与UTC的实质原意又是为何 世界时区又是怎么区分的 面盘上密密麻麻的英文单字代表着什么意义与作用呢 这些都是新手在接触两地时间表或世界时区表时
  • java 实现删除单链表中所有指定的结点以及如何清空单链表

    文章目录 1 删除单链表中的所有的指定结点 1 1 删除思路 1 2 删除步骤 1 2 1 删除结点不是头结点 1 2 2 删除的结点是头结点的情况 1 3 部分代码思路分析 1 4 整体代码演示 2 清空单链表 1 删除单链表中的所有的指
  • 第九章 接口(上)

    第九章 接口 上 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法 9 1 抽象类和抽象方法 包含抽象方法的类叫做抽象类 如果一个类包含一个或多个抽象方法 该类必须被限定为抽象的 否则 编译器就会报错 抽象类和抽象方法都用ab
  • 计算机组成原理:奇偶校验和汉明码校验

    目录 一 奇偶校验 奇偶校验的规律及原理 二 汉明校验码 1 校验位位置 2 汉明码的位号实质上是参与校验的各校验位位号之和 3 计算校验位的值 4 校验 设置指错字 一 奇偶校验 了解汉明码校验之前需要知道奇偶校验 奇偶校验码是一种最简单
  • JS翻转数组

    js翻转数组 reverse 方法翻转 反向添加数组 数组首尾交换 unshift 向数组头部添加 考点 在 数组首尾交换 reverse 方法肯定不是 reverse 是js方法 反向添加数组 和 unshift 向数组头部添加元素 创建