成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript數(shù)組系列五之增刪改和強(qiáng)大的 splice()

chavesgu / 1634人閱讀

摘要:刪除數(shù)組元素的開(kāi)始索引需要?jiǎng)h除元素的個(gè)數(shù),插入數(shù)組的元素語(yǔ)法因?yàn)閰?shù)變化多樣,我們主要從三個(gè)方面來(lái)展示的用法。

今天是我們介紹數(shù)組系列文章的第五篇,也是我們數(shù)組系列的最后一篇文章,只是數(shù)據(jù)系列的結(jié)束,所以大家不用擔(dān)心,我們會(huì)持續(xù)的更新干貨文章。

生命不息,更新不止!

今天我們就不那么多廢話了,直接干貨開(kāi)始。

我們?cè)凇禞avascript數(shù)組系列一之棧與隊(duì)列》中描述我們是如何利用 push、pop、shift、unshift方法進(jìn)行數(shù)組單個(gè)元素的添加與刪除。

但是光有單個(gè)元素的刪除恐怕難以滿足我們的應(yīng)用場(chǎng)景,那么那么如何進(jìn)行數(shù)組元素的批量操作?let"s go!

數(shù)組的增刪改 slice

該方法會(huì)復(fù)制數(shù)組的一部分從我們選擇到開(kāi)始到結(jié)束位置,返回一個(gè)新數(shù)組。

slice 方法接受兩個(gè)可選到參數(shù):一個(gè)復(fù)制數(shù)組到開(kāi)始索引,一個(gè)是復(fù)制數(shù)組到結(jié)束索引。

//語(yǔ)法
array.slice(begin, end);
//案例
const friends = ["大B哥", "二B哥", "三B哥", "我"];
const friends1 = friends.slice();
const friends2 = friends.slice(1);
const friends3 = friends.slice(1, 3);
const friends4 = friends.slice(-1);
const friends5 = friends.slice(-3, -1);
console.log(friends1); //["大B哥", "二B哥", "三B哥", "我"]
console.log(friends2); //["二B哥", "三B哥", "我"]
console.log(friends3); //["二B哥", "三B哥"]
console.log(friends4); //["我"]
console.log(friends5); //["二B哥", "三B哥"]

slice 方法主要就是復(fù)制數(shù)組到一部分,然后返回新的數(shù)組,所以用法也相對(duì)簡(jiǎn)單一些。但是還是有一些我們值得注意到地方。

數(shù)組始終都是從左到右到復(fù)制順序,即使參數(shù)是負(fù)數(shù)也是如此

沒(méi)有接受任何參數(shù)的時(shí)候,會(huì)復(fù)制整個(gè)數(shù)組

一個(gè)參數(shù)的時(shí)候,是從當(dāng)前參數(shù)的索引位置到數(shù)組到結(jié)束

兩個(gè)參與時(shí),采用左閉右開(kāi)到原則,即包含開(kāi)始,但不包含結(jié)束

當(dāng)參數(shù)為負(fù)數(shù)時(shí),會(huì)從數(shù)組的末尾開(kāi)始計(jì)算

以上就是 slice 方法值得我們注意的地方,如果大家掌握了這些知識(shí),那么將會(huì)很好的使用它。

最后,我們來(lái)看一看它的兼容問(wèn)題

splice

splice 方法一個(gè)數(shù)組中最強(qiáng)大的方法,不僅可以對(duì)數(shù)組進(jìn)行元素對(duì)添加,對(duì)數(shù)組元素對(duì)刪除,對(duì)數(shù)組元素的替換,可以說(shuō)它集百家與一身,它會(huì)直接修改原數(shù)組,返回刪除的元素。

那么我們就來(lái)好好的看看它是如何進(jìn)行數(shù)組的添加、刪除與替換工作。

splice 方法的參數(shù)傳入數(shù)量不的不同形成的效果也會(huì)不同。

首先它接受三個(gè)參數(shù)或甚至更多,除了開(kāi)始位置索引 start 參數(shù)以外,其余全是可選參數(shù)。

start:刪除數(shù)組元素的開(kāi)始索引

count:需要?jiǎng)h除元素的個(gè)數(shù)

item1,item2...:插入數(shù)組的元素

//語(yǔ)法
array.splice(start, count, item1, item2, ...)

因?yàn)?splice 參數(shù)變化多樣,我們主要從三個(gè)方面來(lái)展示 splice 的用法。

1. 如何刪除數(shù)組元素

傳遞一個(gè)參數(shù)的時(shí)候,數(shù)組會(huì)刪除從給定的索引到數(shù)組結(jié)束的所有元素,原數(shù)組會(huì)被修改,返回刪除的數(shù)組

//刪除元素
const numbers = [1, 2, 3, 4, 5];
const removes = numbers.splice(2);
console.log(numbers); //[1, 2]
console.log(removes); //[3, 4, 5]

如何刪除指定個(gè)數(shù)的數(shù)組?如我們只想刪除第6個(gè)元素等等...
我們添加第二個(gè)參數(shù) count 即可,元素的索引是從0開(kāi)始,也就是說(shuō) start 參數(shù)是從 0 開(kāi)始的。

//刪除第6個(gè)元素
const numbers = [1, 2, 3, 4, 5, 6, 7, 8];
const removes = numbers.splice(5, 1);
console.log(numbers); //[1, 2, 3, 4, 5, 7, 8]
console.log(removes); //[6]

//刪除第6,7位兩個(gè)元素
const numbers = [1, 2, 3, 4, 5, 6, 7, 8];
const removes = numbers.splice(5, 2);
console.log(numbers); //[1, 2, 3, 4, 5, 8]
console.log(removes); //[6, 7]

已然明白,splice 方法是從 start 索引位置開(kāi)始,刪除 count 個(gè)元素。如何不刪除元素呢?有些聰明的同學(xué)肯定已經(jīng)知道那就是我們的 count 為 0 時(shí),它就不會(huì)刪除任何元素,這個(gè)也為我們后面如何添加與替換元素提供了前提條件。

2. 如何添加數(shù)組元素

如何添加一個(gè)元素,這會(huì)就要用到我們的第三個(gè)參數(shù)或者第四個(gè),第五個(gè)等等,依次添加即可。

//指定在某個(gè)位置添加一個(gè)元素
const numbers = [1, 2, 3, 4, 5];
const removes = numbers.splice(2, 0, "F");
console.log(numbers); //[1, 2, "F", 3, 4, 5]
console.log(removes); //[]

//指定在某個(gè)位置添加多個(gè)元素
const numbers = [1, 2, 3, 4, 5];
const removes = numbers.splice(2, 0, "A", "B", "C");
console.log(numbers); //[1, 2, "A", "B", "C", 3, 4, 5]
console.log(removes); //[]

因?yàn)椴粚?duì)數(shù)組進(jìn)行任何的刪除項(xiàng),然后又在數(shù)組中插入一些元素,實(shí)現(xiàn)的數(shù)組的添加

3. 如何替換數(shù)組元素

替換的思路與刪除僅僅多了一步把要插入掉位置元素給刪除掉。

//替換第2,3位的元素
const numbers = [1, 2, 3, 4, 5];
const removes = numbers.splice(2, 2, "A", "B");
console.log(numbers); //[1, 2, "A", "B", 5]

console.log(removes); //[3, 4]

來(lái)看看 splice 方法的兼容性如何

到目前位置連續(xù)五篇文章,我們已經(jīng)介紹了很多數(shù)組的一些方法,你會(huì)發(fā)現(xiàn)這些方法都是基于單個(gè)數(shù)組的增刪改甚至是合并,沒(méi)有數(shù)組與數(shù)組之間的一些方法,不過(guò) Javascript 還是為我們提供了一個(gè)方法就是可以實(shí)現(xiàn)數(shù)組與數(shù)組之間的合并操作。

concat

用法非常簡(jiǎn)單,就是用于兩個(gè)數(shù)組的合并,原有數(shù)組不發(fā)生改變,返回一個(gè)新的數(shù)組。

它接受的參數(shù)為數(shù)組或者是值類型,參數(shù)的個(gè)數(shù)為一個(gè)或者多個(gè)。

//語(yǔ)法
var newArray = array.concat(array1, array2...)
//連接兩個(gè)數(shù)組
const numbers1 = ["1", "2", "3"];
const numbers2 = ["4", "5", "6"];
const newNumbers = numbers1.concat(numbers2);
console.log(numbers1); //["1", "2", "3"]
console.log(numbers2); //["4", "5", "6"]
console.log(newNumbers);//["1", "2", "3", "4", "5", "6"]

//連接值類型
const numbers1 = ["1", "2", "3"];
const newNumbers = numbers1.concat("4");
console.log(newNumbers); //["1", "2", "3", "4"]

//連接多個(gè)數(shù)組
const numbers1 = ["1", "2", "3"];
const numbers2 = ["4", "5", "6"];
const number3 = ["7"];
const newNumbers = numbers1.concat(numbers2, number3);
console.log(newNumbers);//["1", "2", "3", "4", "5", "6", "7"]

那么 concat 方法的兼容性如何呢?

總結(jié)

到目前位置數(shù)組的系列文章以及介紹完畢,我們系統(tǒng)以及完整的介紹了數(shù)組的一系列方法,通過(guò)一些例子介紹了每個(gè)用法,甚至我們把每個(gè)方法的很多用法都有提到,不說(shuō)能夠應(yīng)對(duì)所有應(yīng)用場(chǎng)景把,至少在日常的開(kāi)發(fā)過(guò)程中足夠使用了。

數(shù)組雖然說(shuō)完了,但是我們的故事還沒(méi)有說(shuō)玩,歡迎持續(xù)關(guān)注。

關(guān)注微信公眾號(hào):六小登登。領(lǐng)取全套學(xué)習(xí)資源

系列文章列表:

《Javascript數(shù)組系列一之棧與隊(duì)列》

《Javascript數(shù)組系列二之迭代方法1》

《Javascript數(shù)組系列三之迭代方法2》

《Javascript數(shù)組系列四之?dāng)?shù)組的轉(zhuǎn)換與排序sort》

《Javascript數(shù)組系列五之增刪改和強(qiáng)大的 splice()》

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97862.html

相關(guān)文章

  • node express mongoose簡(jiǎn)單實(shí)現(xiàn)全棧之增刪改

    摘要:作為一個(gè)有志向的前端,怎么能不搞搞全棧呢。。。地址歡迎大家多多交流前端技術(shù)啊,如果大家喜歡的話,請(qǐng)給我一個(gè)小小的哦 作為一個(gè)有志向的前端,怎么能不搞搞全(zhuang)棧(bi)呢。。。說(shuō)搞咱就搞啊,后端就用node,數(shù)據(jù)庫(kù)就用mongodb,前端呢,呃,再搞個(gè)node的web框架express,思路搞定,開(kāi)始搭建我們的環(huán)境,搭建之前還是先看看我們的目標(biāo)和成果 項(xiàng)目的目標(biāo)和成果 sh...

    AndroidTraveler 評(píng)論0 收藏0
  • 吐槽Javascript系列二:數(shù)組spliceslice方法

    摘要:原來(lái),它的替換功能實(shí)際上是通過(guò)刪除和添加來(lái)完成的。在只有一個(gè)參數(shù)的情況下,方法返回從該參數(shù)指定位置開(kāi)始到當(dāng)前數(shù)組末尾的所有項(xiàng)。它并不改變?cè)瓟?shù)組。吐槽我曾經(jīng)一直困惑數(shù)組中的刪除方法,當(dāng)知道刪除這項(xiàng)偉大的任務(wù)竟然交給了,我心里是失望的。 戰(zhàn)斗英雄你當(dāng),漂亮媳婦兒你娶,怎么啥好事都被你給占了——《激情燃燒的歲月》 談起這兩個(gè)方法,新手不蒙,我是不信!正如吐槽Javascript系列一:sli...

    lookSomeone 評(píng)論0 收藏0
  • 手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)

    摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開(kāi)源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽(tīng)事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...

    Channe 評(píng)論0 收藏0
  • 手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)

    摘要:社區(qū)的認(rèn)可目前已經(jīng)是相關(guān)最多的開(kāi)源項(xiàng)目了,體現(xiàn)出了社區(qū)對(duì)其的認(rèn)可。監(jiān)聽(tīng)事件手動(dòng)維護(hù)列表這樣我們就簡(jiǎn)單的完成了拖拽排序。 完整項(xiàng)目地址:vue-element-admin 系類文章一:手摸手,帶你用vue擼后臺(tái) 系列一(基礎(chǔ)篇)系類文章二:手摸手,帶你用vue擼后臺(tái) 系列二(登錄權(quán)限篇)系類文章三:手摸手,帶你用vue擼后臺(tái) 系列三(實(shí)戰(zhàn)篇)系類文章四:手摸手,帶你用vue擼后臺(tái) 系列...

    zgbgx 評(píng)論0 收藏0
  • 吐槽Javascript系列三:數(shù)組陷阱

    摘要:雖然本系列是吐槽,但并不是為了黑,而是揭露它的一些特性怪癖,只有更好的了解它,才能更好的使用它。本篇主要介紹數(shù)組中常見(jiàn)的隱患點(diǎn)。 雖然本系列是吐槽,但并不是為了黑Javascript,而是揭露它的一些特性(怪癖),只有更好的了解它,才能更好的使用它。本篇主要介紹數(shù)組中常見(jiàn)的隱患點(diǎn)。 龜速的map 在數(shù)組中,map是一個(gè)功能很強(qiáng)大的方法,先來(lái)見(jiàn)識(shí)一下: let arr = [5, 2, ...

    U2FsdGVkX1x 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<