如何區分slice、splice和split


小穎之前寫過一篇文章:JavaScript Array 對象方法 以及 如何區分javascript中的toString()、toLocaleString()、valueOf()方法中有分享過slice()和splice()的用法。今天把slice、splice和split放一起,再看看有哈子區別嘻嘻,因為用的時候老混,放一起總結下,也方便后期查詢。嘻嘻

目錄:

1.slice

2.splice

3.split

代碼:

1.slice

    <script type="text/javascript">
    let arry = [1, 2, 3, 4, 5, 6];
    /**************slice*******************/
    // 1.slice(數組)不改變原數組
    // 用法:arrayObject.slice(start,end)截取從索引為start開始(包括start)到索引到end之前(不包括end)得值
    let _arr1 = arry.slice(1, 5);
    console.log('數組arry:' + arry);
    console.log('數組_arr1:' + _arr1);
    //如果不傳入參數二,那么將從參數一的索引位置開始截取,一直到數組尾
    let _arr2 = arry.slice(2);
    console.log('數組arry:' + arry);
    console.log('數組_arr2:' + _arr2);
    //如果不傳入參數二,且參數一為負數(-2),將從參數倒數(從右向左)第2個位置開始截取,一直到數組尾
    let _arr3 = arry.slice(-2);
    console.log('數組arry:' + arry);
    console.log('數組_arr3:' + _arr3);
    //當只傳入一個參數,是負數時,並且參數的絕對值大於數組length時,會截取整個數組
    let _arr4 = arry.slice(-7);
    console.log('數組arry:' + arry);
    console.log('數組_arr4:' + _arr4);
    //當傳入兩個參數一正一負時,start為正,end為負,且end+數組的length > start,則正常截取,當end+數組的length <= start 時,將返回一個空數組
    let _arr5 = arry.slice(1, -1);
    console.log('數組arry:' + arry);
    console.log('數組_arr5:' + _arr5);
    let _arr6 = arry.slice(1, -5);
    console.log('數組arry:' + arry);
    console.log('數組_arr6:' + _arr6);
    //當傳入兩個參數一正一負時,start為負,end為正,且start+數組的length < end,則正常截取,當start+數組的length >= end 時,將返回一個空數組
    let _arr7 = arry.slice(-5, 5);
    console.log('數組arry:' + arry);
    console.log('數組_arr7:' + _arr7);
    let _arr8 = arry.slice(-5, 0);
    console.log('數組arry:' + arry);
    console.log('數組_arr8:' + _arr8);
    let _arr9 = arry.slice(-5, 1);
    console.log('數組arry:' + arry);
    console.log('數組_arr9:' + _arr9);
    //2.slice(字符串)
    // slice方法復制string的一部分來構造一個新的字符串,用法與參數勻和數組的slice方法一樣;
    let stringA = "1,2,3,4,5,6,7";
    let _string1 = stringA.slice(1, 7);
    console.log('stringA長度:' + stringA.length);
    console.log('_string1:' + _string1);
    </script>

2.splice

實例1:

    let arry = [1, 2, 3, 4, 5, 6];
    /**************splice*******************/
    // 1.splice(數組)改變原數組
    // 用法:arrayObject.splice(index,howmany,item1,.....,itemX)splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
    let _arr1 = arry.splice(1, 2,22,23);
    console.log('數組arry:' + arry);
    console.log('數組_arr1:' + _arr1);

實例2:

    let arry = [1, 2, 3, 4, 5, 6];
    // /**************splice*******************/
    // // 1.splice(數組)改變原數組
    // // 用法:arrayObject.splice(index,howmany,item1,.....,itemX)splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
    // 如果start為負數,則截取從倒數(從右向左數)第幾個到數組末尾之間的值,並從倒數第幾個位置開始插入新的值。
    let _arr2 = arry.splice(-2, 2,22,23);
    console.log('數組arry:' + arry);
    console.log('數組_arr2:' + _arr2);

3.split

參數 描述
separator 必需。字符串或正則表達式,從該參數指定的地方分割 stringObject。
howmany 可選。該參數可指定返回的數組的最大長度。如果設置了該參數,返回的子串不會多於這個參數指定的數組。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。
    // split(字符串)
    // 用法:stringObject.split(separator,howmany)把一個字符串分割成字符串數組
    // 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每個字符之間都會被分割。
    let stringA1 = "1,2,3,4,5,6,7";
    let _stringArry1 = stringA1.split("");
    console.log('stringA1:' + stringA1);
    console.log('_stringArry1:' + _stringArry1);
    let stringA2 = "1.2.3.4.5.6.7";
    let _stringArry2 = stringA2.split(".");
    console.log('stringA2:' + stringA2);
    console.log('_stringArry2:' + _stringArry2);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM