JS中数组splice、slice和字符串slice、split的混淆

本文介绍了Python中的数组方法slice,用于创建数组的浅拷贝,并讲解了splice方法,它能删除、插入和替换数组元素,同时展示了如何使用在字符串上的应用。此外,还提到了substring, substr和split等字符串处理函数。
摘要由CSDN通过智能技术生成

数组方法

slice(剪裁方法(返回新数组,不影响原来的数组)(浅拷贝)

(1)无参:如果不传入参数的情况下, silce()方法返回完整的数组
(2)1个参数:在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
(3)2个参数:如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。

 let arr = ["张","刘","理想"]
    let newarr = arr.slice();
    console.log(arr);
    console.log(newarr);

在这里插入图片描述

let arr = ["张","刘","理想"]
    let newarr = arr.slice(1);//一个参数
    console.log(arr);
    console.log(newarr);

在这里插入图片描述

let arr = ["张","刘","理想"]
    let newarr = arr.slice(0,1);//一个参数
    console.log(arr);
    console.log(newarr);

在这里插入图片描述
裁剪包含开始位置,不包含结束位置左闭右开区间

splice()–删除、插入、替换(直接影响原数组,且返回一个删除内容的新数组,比如添加就没有删除,则返回一个空数组,替换返回替换掉的内容(替换本身就是删除旧的添加新的))

 删除:可以删除任意数量的项,只需指定2 个参数:①要删除的第一项的位置、②要删除的项数。 例如,splice(0,2)会删除数组中的前两项。
 插入:可以向指定位置插入任意数量的项,只需提供3 个参数:①起始位置、②0(要删除的项数)、③要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。例如, splice(2,0,“red”,“green”)会从当前数组的位置2 开始插入字符串"red"和"green"。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3 个参数:①起始位置、②要删除的项数、③要插入的任意数量的项。插入的项数不必与删除的项数相等。例如, splice(2,1,“red”,“green”)会删除当前数组位置2 的项,然后再从位置2 开始插入字符串 “red"和"green”。

let arr = ["张","刘","理想"]
    console.log("原来的数组是---",arr);
    let backarr = arr.splice(0,2)
    console.log("splice对原数组改变之后",arr);
    console.log("splice返回一个新数组接收的删除内容",backarr);

在这里插入图片描述

let arr = ["张","刘","理想"]
    console.log("原来的数组是---",arr);
    let backarr = arr.splice(2,0,"增加的内容")//增加在删除的最后一项位置
    console.log("splice对原数组改变之后",arr);
    console.log("splice返回一个新数组接收的删除内容",backarr);

增加的的内容放在第一个参数指定位置
增加本质就是删除0项然后在此处增加一个新元素
在这里插入图片描述

let arr = ["张","刘","理想"]
    console.log("原来的数组是---",arr);
    let backarr = arr.splice(2,1,"替换的内容")
    console.log("splice对原数组改变之后",arr);
    console.log("splice返回一个新数组接收的删除内容",backarr);

其实就是把某位置开始删除删除n项之后,增加一个新元素,删除后再增加
在这里插入图片描述

字符串

slice()–裁剪(可以是负数,倒数即可-1表示最后一项,-2表示倒数第二项)(不影响原字符串)

和数组一样,把字符串当成一个数组,每个字符就是相当于数组的每一项,其他的都一样

let str = "box-1"; 
    let str1 = str.slice(0,3); //"box" 从下标0开始到下标3结束,一共3个字符,区间[0,3)
    let str2 = str.slice(2);//"x-1" 从第2位开始,到结束 
    let str3 = str.slice(-1);//"1" 从最后一位开始到结束,可以是负数
    console.log(str1);
    console.log(str2);
    console.log(str3);

在这里插入图片描述

字符串的剪裁还有其他的方法

substring和substr

substring接受两个参数,起始下标、结束下标(不支持负数)
substr接受两个参数,起始下标、长度

let str = "box-12"; 
    let str1 = str.substring(2,3); //"x" 从下标2开始到下标3结束,一共3个字符,区间[2,3)
    let str2 = str.substr(2,3);//"x-1" 从第2位开始,裁剪3个长度字符 
   
    console.log(str1);
    console.log(str2);

在这里插入图片描述

split()–切割(不影响原来字符串,返回一个新数组)

split,
返回值:一个新数组:
传入参数:表示切得方法
split(""):直接切分每个字符,放在数组中
split(","):遇到逗号,进行切割
split(" "):遇到空格,进行切割

let str = "1,2,3"; 
    let arr1 = str.split("");//["1",",","2",",","3"]
    let arr2 = str.split(",");//["1","2","3"] 以逗号作为分隔切分
    console.log(str);
    console.log(arr1);
    console.log(arr2);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值