JavaScript中,slice,splice和split三個函數的使用方法的總結o(* ̄︶ ̄*)o

1. slice() 方法返回一個新的數組對象,這一對象是一個由 begin 和 end 決定的原數組的淺拷貝(包括 begin,不包括end)。原始數組不會被改變。

語法: array.slice(begin,end),第一個參數 begin 表示開始截取的索引(包含),第二個參數 end 表示結束截取的索引(不包含end)

好比,有這樣一個數組:

var array=[1,2,3,4,5,6];
var arr1=array.slice(0,3); // 輸出[1,2,3]
var arr2=array.slice(3); //若是 end 被省略,則 slice 會一直提取到原數組末尾,輸出[4,5,6]。
var arr3=array.slice(-1); //若是隻傳入一個參數,且是負數時,length會與參數相加,而後再截取,輸出[6]
var arr4=array.slice(2,-3);  //若是當傳入兩個參數一正一負時,length也會先於負數相加後,再截取,輸出[3]
var arr5=array.slice(-8);  //若是隻傳入一個參數,是負數時,而且參數的絕對值大於數組length時,會截取整個數組,輸出[1,2,3,4,5,6]
var array=arr.slice(8);  //若是傳入一個參數,大於length時,將返回一個空數組,輸出[]

複製代碼

slice 不會修改原數組,只會返回一個淺複製了原數組中的元素的一個新數組。原數組的元素會按照下述規則拷貝:

  • 若是該元素是個對象引用 (不是實際的對象),slice 會拷貝這個對象引用到新的數組裏。兩個對象引用都引用了同一個對象。若是被引用的對象發生改變,則新的和原來的數組中的這個元素也會發生改變。
  • 對於字符串、數字及布爾值來講(不是 String、Number 或者 Boolean 對象),slice 會拷貝這些值到新的數組裏。在別的數組裏修改這些字符串或數字或是布爾值,將不會影響另外一個數組。

若是向兩個數組任一中添加了新元素,則另外一個不會受到影響。正則表達式

2. splice() 方法經過刪除或替換現有元素或者原地添加新的元素來修改數組,並以數組形式返回被修改的內容。此方法會改變原數組。

語法: array.splice(start,deleteCount,item...),參數start是從數組array中移除元素的開始位置。參數deleteCount是要移除的數組元素的個數,必須是整數,若是 deleteCount 是 0 或者負數,則不移除元素。若是有額外的參數,那麼item會插入到被移除元素的位置上。

下面舉例說明spliced的用法,一樣先設置一個數組

var a=[1,2,3,4,5,6];
var b=a.splice(1,2,'f','g');  //這裏表示從數組索引1開始移除元素,移除2個元素,在移除的位置分別插入'f' 和'g',輸出 a=[1,'f','g',4,5,6],b=[2,3]

複製代碼

咱們知道 delete 和 splice 均可以刪除數組中的元素,可是它們是有區別的,例若有一個數組,這時咱們想刪除數組中的b元素 :數組

var arr = ['a','b','c','d'];
delete arr[2]; // 用 delete 刪除,輸出 [ 'a', <1 empty item>, 'c', 'd' ],
arr.splice();  // 用 splice 刪除,輸出 [ 'a', 'c', 'd' ]
複製代碼

可見,用 delete 刪除的時候,其餘元素的鍵值是不變的,被刪除的位置會用 <1 empty item> 表示ui

3. split() 方法使用指定的分隔符字符串將一個String對象分割成子字符串數組,以一個指定的分割字串來決定每一個拆分的位置。

語法: string.split(separator,limit),split方法把這個string分割成片斷來建立一個字符串數組。可選參數limit能夠限制被分割的片斷數量。separator參數能夠是一個字符串或一個正則表達式,下面咱們從一些簡單例子中去理解 split 的用法

var str = 'The quick brown fox jumps over the lazy dog.';
var words = str.split(' ');
console.log(words[3]);  // 輸出: fox
var chars = str.split('');
console.log(chars[8]);  // 輸出: k
var strCopy = str.split();
console.log(strCopy);  // 輸出: Array ['The quick brown fox jumps over the lazy dog.']
// 再好比:
var a = "0123456";
var b = a.split('', 3); // 輸出: b=[ '0', '1', '2' ]
複製代碼

想了解更多關於split的用法,能夠查看MDN官方文檔,請點此連接^_^spa

明天又是充滿但願的一天,繼續加油O(∩_∩)O

喵
相關文章
相關標籤/搜索