深究JavaScript——slicesplicesubstringsubstr

    xiaoxiao2022-06-28  39

    数组slice/splice

    slice()

            接受一或两个参数,返回起始到结束位置的新数组。slice()不会影响原数组。

            在只有一个参数的情况下,slice()方法从该参数指定位置起到当前数组末尾所有项。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.slice(2);alert(arr1);    //[1,2,3,4,5]alert(arr2);    //[3,4,5]

             如果接受了两个参数:该方法返回起始位置到结束位置之间(不包括结束位置)指定的项。 

    var arr1 = [1,2,3,4,5];var arr2 = arr1.slice(2, 3);console.log(arr2);  //[3]

            如果参数中有个是负数,则用数组长度加上该附属来确定相应的位置。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.slice(2, -1);  //相当于arr1.slice(2,4);console.log(arr2);  //[3, 4]

            如果结束位置小于起始位置,则返回空数组。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.slice(3, -3);console.log(arr2);  //[]

    splice()

            返回删除的项,始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)。

            删除:删除任意数量的项,指定2个参数:删除的起始位置和要删除的项数。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.splice(0, 2);console.log(arr1);  //[3, 4, 5]console.log(arr2);  //[1, 2]

            插入:向指定位置插入任意数量的项,指定三个参数:起始位置,0,新插入的项。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.splice(2, 0, 6, 7);console.log(arr1);  //[1, 2, 6, 7, 3, 4, 5]console.log(arr2);  //[]

            替换:向指定位置插入任意数量的项,且删除任意数量的项。指定3个参数:起始位置、不为0的项数、要插入任意数量的项。

    var arr1 = [1,2,3,4,5];var arr2 = arr1.splice(2, 2, 6, 7);console.log(arr1);  //[1, 2, 6, 7, 5]console.log(arr2);  //[3, 4]

    字符串slice/substring/substr

    slice()

            提取字符串的某个部分,并以新的字符串返回被提取的部分,不改变原字符串。

            只有一个参数,则返回从该参数指定的位置到当前字符串的部分。

    var str1 = "12345";var str2 = str1.slice(2);console.log(str1);    //12345console.log(str2);    //345

            如果是两个参数,则返回起始与结束参数(不包括结束参数)所指定的位置之间的部分。

    var str1 ="12345";var str2 = str1.slice(2, 4);alert(str1);    //12345alert(str2);    //34

            如果参数中,有负数存在,将字符串长度加上负数。

    var str1 ="12345";var str2 = str1.slice(2, -1);alert(str1);    //12345alert(str2);    //34

             如果结束位置小于起始位置,返回空字符串。

    var str1 ="12345";var str2 = str1.slice(3, 2);alert(str1);    //12345alert(str2);    //

    substring()

            提取字符串中介于两个指定下标之间的字符,不改变原字符串。

           如果只有一个参数,则返回从该参数指定的位置到当前字符串结束的部分。

    var str1 = "12345";var str2 = str1.substring(3);console.log(str1);    //"12345"console.log(str2);    //"45"

            如果两个参数,则返回从该参数指定的位置到当前字符串的部分。

    var str1 = "12345";var str2 = str1.substring(3, 5);console.log(str2);    //"45"

            如果第二个参数比第一个参数大,自动回交换起始结束位置。如果任一参数小于 0 或为 NaN,则被当作 0。

    var str1 = "12345";var str2 = str1.substring(3, 2);console.log(str2);    //"3"

    substr()

            在字符串中抽取从 start 下标开始的指定数目的字符。

            如果只有一个参数,则返回从该参数指定的位置到当前字符串的部分。

    var str1 = "12345";var str2 = str1.substr(2);console.log(str1);    //12356console.log(str2);    //345

             如果有两个参数,第二个参数代表需截取的位数不能为负数·。第一个参数若为负数,将其于字符串长度相加。

    var str1 = "12345";var str2 = str1.substr(-3, 2);console.log(str1); //12356console.log(str2); //34

            这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定子字符串的开始位置;slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置,substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。

    转载请注明原文地址: https://ju.6miu.com/read-1124512.html

    最新回复(0)