摘要:原來,它的替換功能實(shí)際上是通過刪除和添加來完成的。在只有一個(gè)參數(shù)的情況下,方法返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)。它并不改變原數(shù)組。吐槽我曾經(jīng)一直困惑數(shù)組中的刪除方法,當(dāng)知道刪除這項(xiàng)偉大的任務(wù)竟然交給了,我心里是失望的。
戰(zhàn)斗英雄你當(dāng),漂亮媳婦兒你娶,怎么啥好事都被你給占了——《激情燃燒的歲月》
談起這兩個(gè)方法,新手不蒙,我是不信!正如吐槽Javascript系列一:slice()、substr()和 substring()中提到的,字符串中也有一個(gè)slice方法,極易混淆!
但其實(shí)呢,在數(shù)組中,他們還是很好區(qū)分的。
splice,譯為拼接,它的功能非常強(qiáng)大,能夠刪除,新增,修改原數(shù)組,功能三合一哦,我們先來看它的刪除功能:
// 刪除 let colors = ["red", "green", "blue"] let removed = colors.splice(0, 1) console.log(removed) // [ "red" ] console.log(colors) // [ "green", "blue" ]
上面代碼中,splice接收了二個(gè)參數(shù),第一個(gè)參數(shù)表示要?jiǎng)h除的第一項(xiàng)的位置,第二個(gè)參數(shù)表示要?jiǎng)h除的項(xiàng)數(shù)。
我們再來看看它的添加功能:
// 添加 let colors = ["red", "green", "blue"] let removed = colors.splice(1, 0, "yellow", "orange") console.log(removed) // [] console.log(colors) // [ "red", "yellow", "orange", "green", "blue" ]
上面代碼中,splice接收了四個(gè)參數(shù),第一個(gè)參數(shù)表示要?jiǎng)h除的第一項(xiàng)的位置,第二個(gè)參數(shù)表示要?jiǎng)h除的項(xiàng)數(shù),從第三個(gè)參數(shù)開始,表示要添加的項(xiàng)。
我們再來看看它的替換功能:
// 替換 let colors = ["red", "green", "blue", "orange"] let removed = colors.splice(2, 1, "yellow", ) console.log(removed) // [ "blue" ] console.log(colors) // [ "red", "green", "yellow", "orange" ]
上面代碼中,splice接收了三個(gè)參數(shù),第一個(gè)參數(shù)表示要?jiǎng)h除的第一項(xiàng)的位置,第二個(gè)參數(shù)表示要?jiǎng)h除的項(xiàng)數(shù),第三個(gè)參數(shù)表示要添加的項(xiàng)。
原來,它的替換功能實(shí)際上是通過刪除和添加來完成的。
說完splice,接下來說slice。
sliceslice,譯為切開,我們來看例子:
let arr = ["red", "green", "blue", "yellow"] let arr1 = arr.slice(1) let arr2 = arr.slice(1, 2) console.log(arr1) // [ "green", "blue", "yellow" ] console.log(arr2) // [ "green" ] console.log(arr) // [ "red", "green", "blue", "yellow" ]
slice接受一或兩個(gè)參數(shù),即要返回項(xiàng)的起始和結(jié)束位置。在只有一個(gè)參數(shù)的情況下,slice()方法返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)。它并不改變原數(shù)組。
吐槽splice我曾經(jīng)一直困惑數(shù)組中的刪除方法,當(dāng)知道刪除這項(xiàng)偉大的任務(wù)竟然交給了splice,我心里是失望的。
不應(yīng)該是del或者remove才像話嗎?刪除的功能它占了也就算了,添加的功能它也占了!它既能添加,也能刪除,還能拼接,那它為什么沒有七十二變?
一個(gè)西瓜,被菜刀切成幾塊,這西瓜還是原來的西瓜嗎?那一個(gè)數(shù)組,被你切了幾下,那數(shù)組還是原來的數(shù)組嗎?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101732.html
摘要:點(diǎn)評我們來看這樣一個(gè)例子給定一個(gè)字符串,要求去掉最后一個(gè)逗號。大膽假想一下,如果把踢出去,就保留和,你還會(huì)懵嗎或者更大膽一點(diǎn),把和都踢出去,就只保留,我反正感覺整個(gè)世界都清靜了系列鏈接吐槽系列一和吐槽系列二數(shù)組中的和方法吐槽系列三數(shù)組的陷阱 實(shí)不相瞞,對于字符串中的slice()、substr()和 substring()這三個(gè)方法,我自己很長一段時(shí)間都是理不清的,每次用都得查一下文檔...
摘要:刪除數(shù)組元素的開始索引需要?jiǎng)h除元素的個(gè)數(shù),插入數(shù)組的元素語法因?yàn)閰?shù)變化多樣,我們主要從三個(gè)方面來展示的用法。 今天是我們介紹數(shù)組系列文章的第五篇,也是我們數(shù)組系列的最后一篇文章,只是數(shù)據(jù)系列的結(jié)束,所以大家不用擔(dān)心,我們會(huì)持續(xù)的更新干貨文章。 生命不息,更新不止! 今天我們就不那么多廢話了,直接干貨開始。 我們在《Javascript數(shù)組系列一之棧與隊(duì)列》中描述我們是如何利用 pus...
摘要:雖然本系列是吐槽,但并不是為了黑,而是揭露它的一些特性怪癖,只有更好的了解它,才能更好的使用它。本篇主要介紹數(shù)組中常見的隱患點(diǎn)。 雖然本系列是吐槽,但并不是為了黑Javascript,而是揭露它的一些特性(怪癖),只有更好的了解它,才能更好的使用它。本篇主要介紹數(shù)組中常見的隱患點(diǎn)。 龜速的map 在數(shù)組中,map是一個(gè)功能很強(qiáng)大的方法,先來見識一下: let arr = [5, 2, ...
摘要:中文指南二作者簡介是推出的一個(gè)天挑戰(zhàn)。完整中文版指南及視頻教程在從零到壹全棧部落。第七天的練習(xí)是接著之前中文指南一的練習(xí),繼續(xù)熟練數(shù)組的方法,依舊沒有頁面顯示效果,所以請打開瀏覽器的面板進(jìn)行調(diào)試運(yùn)行。 Day07 - Array Cardio 中文指南二 作者:?liyuechun 簡介:JavaScript30 是 Wes Bos 推出的一個(gè) 30 天挑戰(zhàn)。項(xiàng)目免費(fèi)提供了 30 個(gè)...
閱讀 2668·2021-11-24 10:44
閱讀 1928·2021-11-22 13:53
閱讀 1952·2021-09-30 09:47
閱讀 3713·2021-09-22 16:00
閱讀 2444·2021-09-08 09:36
閱讀 2323·2019-08-30 15:53
閱讀 2798·2019-08-30 15:48
閱讀 996·2019-08-30 15:44