区分 slice splice split

项目开发中总会把splice slice split 这三个方法的使用搞混,趁着今天有时间,写篇博客记录一下,希望以后不会再犯这个低级的错误了。

slice

slice 截取数组生成子数组,但是不破坏数组本身
slice 可以传入两个参数,两个参数可填可不填(两个参数的取值可以是正负数和0

//不传入参数
let arr = [1, 2, 3, 4, 5, 6];
let tempArr = arr.slice();
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr ); //[1, 2, 3, 4, 5, 6]

//传入两个参数  arr.slice(start, end)   表示从第start 个数组元素开始截取 ,截取到第end - 1个数组元素  
// 截取的时候记住 **包头不包尾**

//从第一个元素开始截取,直接截取到数组的尾部
tempArr = arr.slice(1);
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr ); //[2, 3, 4, 5,6]

//从倒数第二个元素开始截取 ,直接截取到数组的尾部
tempArr = arr.slice(-2);
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr); // [5, 6]

//从第一个元素开始截取,截取到第5个数组元素
let arr = [1, 2, 3, 4, 5, 6]; 
let tempArr = arr.slice(1, 5);
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr); //  [ 2, 3, 4, 5]

//从第一个元素开始截取数组,截取到倒数第二个元素
tempArr = arr.slice(1, -2); 
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr); //[2, 3, 4]


//从倒数第五个元素开始截取,截取到倒数第二个元素
tempArr = arr.slice(-5, -2);
console.log(arr);  //[1, 2, 3, 4, 5, 6]
console.log(tempArr);  [2, 3, 4]


字符串本身也具有slice方法,它的使用方式等同于数组的使用方法。

splice

splice也是应用于数组,这是一个比较强大的方法,可以对数组进行增删改,splice可以传入多个参数。splice会破坏原数组的结构

以下使用该方法对数组进行增删改

  • 增加数组元素
//从第start个元素开始添加元素
let arr = [1, 2, 3, 4, 5, 6];
let tempArr = arr.splice(3, 0, 99);
console.log(tempArr); // []
console.log(arr);   //  [1, 2, 3, 99, 4, 5, 6]
  • 删除数组元素
//从第start个元素进行删除,删除end个元素
let arr = [1, 2, 3, 4, 5, 6];
let tempArr = arr.splice(1, 3);
console.log(arr); // [1, 5, 6]  
console.log(tempArr); //[2, 3, 4]  返回删除的元素

  • 修改数组元素
//修改第start个数组元素
let arr = [1, 2, 3, 4, 5, 6];
let tempArr = arr.splice(3, 1, 99);
console.log(arr); //[1, 2, 3, 99, 5, 6]
console.log(tempArr); //[4]   返回被修改的元素

split

split 是应用于字符串的方法,该方法是对字符串中的特定字符进行切割进而转化为数组
split可以传入两个参数,第一个参数是要切割的特定的字符串,第二个参数是一个长度值,可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

实例

let str = '1,2,3,4,5,6,7,8';
let arr = str.split(',');
console.log(arr);// ["1", "2", "3", "4", "5", "6", "7", "8"]

arr = str.split(',', 5)
console.log(arr); //["1", "2", "3", "4", "5"]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值