slice和splice區(qū)別

slice

  • 基于當(dāng)前數(shù)組中的一或多個(gè)項(xiàng)創(chuàng)建一個(gè)新數(shù)組
  • 可以接受一或兩個(gè)參數(shù),即要返回項(xiàng)的起始和結(jié)束位置,但不包括結(jié)束位置
  • 在只有一個(gè)參數(shù)的情況下,返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)
  • 不會(huì)影響原始數(shù)組
  var colors = ["red", "green", "blue", "yellow", "purple"];
  var colors2 = colors.slice(1);
  var colors3 = colors.slice(1,4);
  
  console.log(colors); // ["red", "green", "blue", "yellow", "purple"]
  console.log(colors2); // ["green","blue","yellow","purple"]
  console.log(colors3); // ["green","blue","yellow"]

如果參數(shù)中有一個(gè)負(fù)數(shù),則用數(shù)組長度加上該數(shù)來確定相應(yīng)的位置。例如,在一個(gè)包含5項(xiàng)的數(shù)組上調(diào)用 slice(-2,-1)與調(diào)用 slice(3,4)得到的結(jié)果相同。如果結(jié)束位置小于起始位置,則返回空數(shù)組。


splice

  • 主要用途是向數(shù)組的中部插入元素
  • 會(huì)影響原始數(shù)組

刪除

要實(shí)現(xiàn) splice 的刪除功能,最多只能傳兩個(gè)參數(shù)

一個(gè)參數(shù)

刪除從參數(shù)位置到當(dāng)前數(shù)組末尾的所有項(xiàng)

var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(0)

console.log(colors) // []
console.log(spliceColors) // ["red", "green", "blue", "black"]
兩個(gè)參數(shù)

起始位置和要?jiǎng)h除元素的數(shù)量

var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(0,2)

console.log(colors) // ["blue", "black"]
console.log(spliceColors) // ["red", "green"]

插入

要實(shí)現(xiàn) splice 的插入功能,至少傳3個(gè)參數(shù):起始位置、0(要?jiǎng)h除元素的數(shù)量)和要插入的元素。如果要插入多個(gè)元素,可以再傳入第四、第五,以至任意多個(gè)元素

var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(1,0,'yellow','white')

console.log(colors) // ["red", "yellow", "white", "green", "blue", "black"]
console.log(spliceColors) // []

替換

splice 可以向指定位置插入任意數(shù)量的項(xiàng),且同時(shí)刪除任意數(shù)量的項(xiàng)。要實(shí)現(xiàn) splice 的替換功能,只需指定3個(gè)參數(shù):起始位置、要?jiǎng)h除元素的數(shù)量和要插入的元素。插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等

var colors = ["red", "green", "blue", "black"];
var spliceColors = colors.splice(1,2,'yellow','white')

console.log(colors) // ["red", "yellow", "white", "black"]
console.log(spliceColors) // ["green", "blue"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,674評論 0 4
  • 由于最近都在freecodecamp上刷代碼,運(yùn)用了很多JavaScript數(shù)組的方法,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 2,171評論 0 16
  • 第三章 類型、值和變量 1、存取字符串、數(shù)字或布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對象稱做包裝對象,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 720評論 0 1
  • 數(shù)組是值的有序集合。每個(gè)值叫做一個(gè)元素,而每個(gè)元素在數(shù)組中有一個(gè)位置,以數(shù)字表示,稱為索引。 JavaScript...
    劼哥stone閱讀 1,235評論 6 20
  • 晚上接到朋友電話,她說很煩,園長讓寫學(xué)期總結(jié)報(bào)告,各種要求,各種麻煩,很擔(dān)心寫不來。聽著她滿腹委屈。我知道,這個(gè)平...
    RainyCai閱讀 201評論 1 3

友情鏈接更多精彩內(nèi)容