欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

傻傻分不清的 slice,split 和splice

程序员文章站 2022-05-29 11:49:19
...

每次使用的时候我都要怀疑一遍自己是不是弄混淆了,就写一个笔记加深一下印象吧!

split() 把字符串分割为字符串数组

返回值:

一个字符串数组,该数组是通过  指定的形式将字符串分割成子串创建,返回的数组中不包括字符串本身。


   //以空格的 分割字符串 str ,将句子分割成单词
    var str = 'Hello World!';
    str.split(' ');  // ["Hello","World"]
    str.split(/\s+/);
    
    // 将单词切割成字母
    var word ='Hello';
    word.split(""); // ["H", "e", "l", "l", "o"]

    //切割 url
    var url = 'name=zhang&age=23&sex=1&num=130403060';
    url.split('&'); // ["name=zhang", "age=23", "sex=1", "num=130403060"]

split()一般用在处理 请求的url地址,cookie等地方。在这里就需要提一下数组的 join() 方法,它的作用和 split()相反,是将数组元素通过某个符号连接成字符串。

slice() 从数组中选取自定的元素,返回一个新的数组,不会修改数组本身;字符串也有该方法,作用相同

    var arr = ['json','ajax','xml','click','addEventListener'];
    arr.slice(); //不传参数,默认返回数组本身  ['json','ajax','xml','click','addEventListener']
    arr.slice(1);//从第一个开始选取,返回一个新的数组,包含选取的全部元素 ['ajax','xml','click','addEventListener']
    arr.slice(1, 4);//从第一个参数指定的位置开始选取,选取截止到第二个参数所指位置,不包含该参数所指位置的元素 ['ajax','xml','click']
    arr.slice(-2,-1); //传入负数时,就反方向选取  ['click','addEventListener']

    // 字符串也有 slice()方法,使用参数和数组差不多
    var str ="Hello World!zhang";
    str.slice(1); // ello World!zhang

splice 向数组中添加或者删除元素,然后返回被删除的元素数组 ,是修改数组本身的

    // splice() 方法向数组中添加|从数组删除项目,然后返回被删除的项目。
    var arr = ['json','ajax','xml','click','addEventListener'];
    arr.splice(3); //返回被删除的元素数组 ['click','addEventListener']
    
    arr.splice(3, 5, "error", "yes");//向数组中 3,5之间的元素被新元素替换
    console.log(arr);  //['json','ajax','xml','error','yes']
splice 和slice 根本的区别就是,slice不会修改数组本身,但是splice会修改数组。