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