JavaScript中的slice()和splice()

slice() splice() JavaScript Array 對象原型的兩個方法,由於方法名很相像,經常會記混兩者的作用,下面來做一個明確的區分。

 

1.slice(start[, end])

從數組中取元素,返回取出的子數組,對原數組無影響。其中,start 參數必填,表示取元素的起始位置;end 參數可選,表示取元素的終止位置,但不包含 array[end] 元素(可以理解爲最終取出的數組中元素有 end - start 個),如果 end 爲空,則默認爲 array.lengh。看幾個例子:

var numArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.slice(5) //返回 [5, 6, 7, 8, 9]
numArray.slice(5, 6) //返回 [5]
numArray //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 原數組不受影響

注:

slice() 同樣也是 String.prototype 中的方法,接收的參數和 Array.prototype.slice() 相同,返回截取後的字符串,原字符串不受影響。splice() 方法則不在 Array.prototype 中。


2.splice(start[, number, item1, item2, …, itemN])

對數組進行添加 / 刪除元素,返回被刪除的元素,對原數組有影響。其中,start 參數必填,表示進行操作的起始位置;number 參數可選,表示要刪除的元素個數,0 爲不刪除元素;item1, item2, …, itemN 參數可選,表示要添加的元素值。看幾個例子:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
myArray.splice(9,1) //[9]
myArray //[0, 1,2, 3, 4, 5, 6, 7, 8]
myArray.splice(8,1, 8, 9, 10) //[8]
myArray //[0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray.splice(1)//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray //[0]

 

補充:JavaScript 中數組的常用操作:

1. pop()  shift()

1.1 pop() 用於刪除數組最後一個元素,並返回被刪除的元素:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.pop()//9
numArray //[0,1, 2, 3, 4, 5, 6, 7, 8]

1.2 shift() 用於刪除數組的第一個元素,並返回被刪除的元素:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.shift()//0
numArray //[1,2, 3, 4, 5, 6, 7, 8, 9]

2. push()  unshift()

2.1 push() 用於向數組末尾添加一個或多個元素,並返回添加元素後數組的長度:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.push(10,11, 12) //13
numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

2.2 unshift() 用於向數組開頭添加一個或多個元素,並返回添加元素後數組的長度:

var numArray = [0,1, 2, 3, 4, 5, 6, 7, 8, 9]
numArray.unshift(10,11, 12) //13
numArray = [10,11, 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


本文出自 “細桶假狗屎” 博客,請務必保留此出處http://xitongjiagoushi.blog.51cto.com/9975742/1653063

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章