javaScript中slice()和splice()的用法与区别

server/2024/12/21 15:00:28/
  1. 定义和功能
    • slice()方法
      • slice()方法用于从一个数组(或字符串)中提取指定范围的元素(或字符),它不会改变原始数组(或字符串),而是返回一个新的数组(或字符串)。
      • 语法为array.slice(start, end)(对于数组)或string.slice(start, end)(对于字符串)。其中start是开始提取的索引(包含),end是结束提取的索引(不包含)。如果省略end参数,则提取从start到数组(或字符串)末尾的所有元素(或字符)。
    • splice()方法
      • splice()方法主要用于修改数组。它可以删除数组中的元素、插入新元素或者同时进行删除和插入操作。这个方法会直接改变原始数组。
      • 语法为array.splice(start, deleteCount, item1, item2,...)。其中start是开始修改的索引,deleteCount是要删除的元素个数,item1, item2,...是要插入的新元素。
  2. 返回值
    • slice()方法
      • 返回一个包含提取元素(或字符)的新数组(或新字符串)。例如:

        收起

         

        javascript

        let arr = [1, 2, 3, 4, 5];
        let newArr = arr.slice(1, 3);
        console.log(newArr); // [2, 3]
        console.log(arr);   // [1, 2, 3, 4, 5](原始数组不变)
        

        对于字符串也类似:

        收起

         

        javascript

        let str = "Hello World";
        let newStr = str.slice(0, 5);
        console.log(newStr); // "Hello"
        console.log(str);    // "Hello World"(原始字符串不变)
        
    • splice()方法
      • 返回一个包含被删除元素的数组。如果没有删除元素,则返回一个空数组。例如:

        收起

         

        javascript

        let arr = [1, 2, 3, 4, 5];
        let removedItems = arr.splice(1, 2);
        console.log(removedItems); // [2, 3]
        console.log(arr);           // [1, 4, 5](原始数组已改变)
        
  3. 参数使用的区别
    • slice()方法
      • 它的参数主要是用于指定提取的范围。参数可以是正数、负数。正数表示从前往后的索引,负数表示从后往前的索引。例如:

        收起

         

        javascript

        let arr = [1, 2, 3, 4, 5];
        // 从倒数第二个元素开始提取到末尾
        let newArr = arr.slice(-2);
        console.log(newArr); // [4, 5]
        
    • splice()方法
      • 参数比较灵活。start参数指定操作的起始位置,deleteCount用于指定要删除的元素个数。如果deleteCount为 0,则表示不删除元素,只插入新元素。例如:

        收起

         

        javascript

        let arr = [1, 2, 3, 4, 5];
        // 在索引为2的位置插入两个元素
        arr.splice(2, 0, 6, 7);
        console.log(arr); // [1, 2, 6, 7, 3, 4, 5]
        
  4. 应用场景
    • slice()方法
      • 当需要从一个数组或字符串中获取部分数据,而不改变原始数据时,就可以使用slice()。例如,在处理数据视图或者复制数据子集时很有用。在函数式编程中,也经常用于获取数据副本,以避免副作用。
    • splice()方法
      • 当需要对数组进行实际的修改,如删除元素、插入元素或者重新排列元素顺序时,使用splice()。比如在实现一个数据列表的增删操作时,就可以使用这个方法来更新数组的内容。

http://www.ppmy.cn/server/151970.html

相关文章

基础二层交换组网(静态IP)

拓扑图 实验目的 掌握并了解网络中静态IP默认无路由影响的情况。 实验过程 1.创建拓扑 2.配置PC1、PC2 IP地址 PC1: IP地址:192.168.0.1 子网掩码:255.255.255.0PC2: IP地址:192.168.0.2 子网掩码:255.…

开启新征程——QML

文章目录 前言什么是 QML?QML 的主要特点: 什么是 Qt Quick?Qt Quick 的主要特点: QML 与 C 的结合开发工具总结 文章目录 前言什么是 QML?QML 的主要特点: 什么是 Qt Quick?Qt Quick 的主要特点…

计算机网络基础--WebSocket

什么是 WebSocket? WebSocket 是一种基于 TCP 连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据。 WebSocket 协议在 2008 年诞生,2011 年成为国际标准,几乎所有主流较新版本的浏览器都支持该协议。不过,WebSocke…

新能源汽车产销数据分析

新能源汽车产销数据分析 一、读取数据1.打印表头信息2.查看前几行数据3.打印数据基本统计信息4.检查缺失值情况5.缺失值处理方法二、绘图1.统计"车型大类"的分布2.制造厂累计销量对比(前90%)3.当期销量随时间变化折线图4.累计同比分布箱线图5.…

js 中数组、对象遍历方法总结

文章目录 数组方法类数组及对象应用对象应用补充 数组方法 push() 功能:向数组的末尾添加一个或多个元素,并返回新的长度。示例: let arr [1, 2, 3]; let newLength arr.push(4); console.log(arr); // [1, 2, 3, 4] console.log(newLengt…

ESP32单片机开发

目录 一、ESP32 单片机的初印象 (一)基本概念解读 (二)开发环境搭建 1. Arduino IDE 2. ESP-IDF 二、ESP32 单片机开发语言知多少 三、ESP32 单片机开发常见问题及解决 (一)硬件连接相关问题 &…

四、CSS3

一、CSS3简介 1、CSS3概述 CSS3 是 CSS2 的升级版本,他在CSS2的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题。 CSS在未来会按照模块化的方式去发展:https://www.w3.org/Style/CSS/current-work.html …

【HTML】Shadow DOM

Shadow DOM 允许将隐藏的 DOM 树附加到常规的 DOM 树中。它以 shadow root 节点为起始根节点,在这个根节点的下方,可以是任意元素,和普通的 DOM 元素一样。这样,你就可以创建一个独立的 DOM 子树,它与主文档隔离开来&a…