国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS數組操作之增刪改查的簡單實現

2024-05-06 16:39:08
字體:
來源:轉載
供稿:網友

JS提供了很多方便操作數組的方法,本文所要分享的就是如何快速對數組進行增、刪、改、查。

一、增

1、push()

可接收任意數量的參數,把它們逐個添加至數組末尾,并返回修改后數組的長度。例如:

var arr = [];var len = arr.push(1);console.log(arr); // [1]console.log(len); // 1len = arr.push(2,3);console.log(arr); // [1,2,3]console.log(len); // 3

2、unshift()

該方法與push()類似,也可接收任意數量的參數,只不過是將參數逐個添加至數組前端而已,同樣返回新數組長度。咱們接著上面的例子:

var len = arr.unshift(0);console.log(arr); // [0, 1, 2, 3]console.log(len); // 4len = arr.unshift(-2,-1);console.log(arr);  // [-2, -1, 0, 1, 2, 3]console.log(len);  // 6

3、concat()

該方法與push()方法有點類似,同樣是將元素添加至數組末尾,只不過這個數組已經不是原來的那個數組了,而是其副本,所以concat()操作數組后會返回一個新的數組。具體用法如下:

① 不傳參數,返回當前數組副本

② 傳遞一或多個數組,則該方法會將這些數組中的每一項都添加到結果數組中

③ 傳遞非數組參數,這些參數就會被直接添加到結果數組的末尾

繼續接著上面的栗子:

var arr1 = arr.concat(4,[5,6]);console.log(arr);  // [-2, -1, 0, 1, 2, 3]console.log(arr1);  // [-2, -1, 0, 1, 2, 3, 4, 5, 6]

例子中一目了然,原數組保持不變,新數組后面添加了4、5、6三個元素。

4、splice()

前面的三個方法都具有很大局限性,因為不是添加到數組前就是數組后,而splice()就不一樣了,它非常靈活和強大。靈活是因為它可以添加元素到數組的任意位置,強大是因為它除了可以添加元素之外還具有刪除和替換元素的功能(這個后面會陸續講到)。

splice()可以向數組指定位置添加任意數量的元素,需要傳入至少3個參數: 起始位置、0(要刪除的元素個數)和要添加的元素。

依然接著上面的例子繼續:

arr.splice(3,0,0.2,0.4,0.6,0.8);console.log(arr); // [-2, -1, 0, 0.2, 0.4, 0.6, 0.8, 1, 2, 3]

可以看出,splice()與push()和unshift()一樣是直接在原數組上修改的。

二、刪

1、pop()

與push()方法配合使用可以構成后進先出的棧,該方法可從數組末尾刪除最后一項并返回該項。

接著上例:

var item = arr.pop();console.log(item);  // 3console.log(arr);  // [-2, -1, 0, 0.2, 0.4, 0.6, 0.8, 1, 2]

2、shift()

與push()方法配合使用可以構成先進先出的隊列,該方法可刪除數組第一項并返回該項。

繼續接著上例:

var item = arr.shift();console.log(item); // -2console.log(arr); // [-1, 0, 0.2, 0.4, 0.6, 0.8, 1, 2]

3、slice()

該方法同concat()一樣是返回一個新數組,不會影響原數組,只不過slice()是用來裁剪數組的,返回裁剪下來的數組,具體用法如下:

slice()方法可以接受一或兩個參數,即要返回項的起始和結束位置。在只有一個參數的情況下,slice()方法返回從該參數指定位置開始到當前數組末尾的所有項。如果有兩個參數,該方法返回起始和結束位置之間的項——但不包括結束位置的項。

咱們還是繼續接著上面例子吧~~

var arr2 = arr.slice(2,6);console.log(arr); // [-1, 0, 0.2, 0.4, 0.6, 0.8, 1, 2]console.log(arr2); // [0.2, 0.4, 0.6, 0.8]

4、splice()

好,繼續講這個“萬能”的方法。

上面講到,該方法在添加數組元素的時候需要傳入3個以上參數,而其中第2個參數就是用于指定要刪除元素的個數的,那時我們傳的是數字0。那么,如果單單只需刪除元素,我們就只需給splice()傳入兩個參數,第1個參數用于指定要刪除的第一項的位置,第2個參數用于指定要刪除元素的個數。

繼續上例~~

arr.splice(2,4);console.log(arr); // [-1, 0, 1, 2]

從索引項為2的位置開始刪除4個元素,所以結果為 [-1, 0, 1, 2]。

三、改

這個其實最靈活的方式就是直接使用splice()這個強大的方法了,其實通過以上對該方法的了解,我們大致就能知道使用該方法修改數組元素的基本原理。

原理很簡單,就是向指定位置插入任意數量的元素,且同時刪除任意數量的元素。

依然繼續上例~~

arr.splice(2,1,0.5,1,1.5);console.log(arr);  // [-1, 0, 0.5, 1, 1.5, 2]

四、查

indexOf()和lastIndexOf()

這兩個方法都接收兩個參數:要查找的項和(可選的)表示查找起點位置的索引。其中,indexOf()從數組的開頭(位置0)開始向后查找,lastIndexOf()方法則從數組的末尾開始向前查找。

例如:

var index = arr.indexOf(0);console.log(index);  // 1index = arr.indexOf(3,0);console.log(index);  // -1

當找不到該元素時,返回 -1 ,lastIndexOf()方法同理。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 进贤县| 垦利县| 青州市| 武城县| 松桃| 巴塘县| 漯河市| 曲水县| 北辰区| 涞源县| 婺源县| 陇西县| 容城县| 昂仁县| 祥云县| 景洪市| 芦山县| 年辖:市辖区| 长汀县| 营山县| 买车| 黄梅县| 永和县| 天柱县| 云龙县| 巴楚县| 深州市| 晋州市| 治多县| 辽中县| 潜山县| 昌江| 迁西县| 罗定市| 邵阳市| 霞浦县| 平阴县| 柘城县| 孟州市| 咸丰县| 轮台县|