各種視角了解陣列Array以及案例展示

2022-03-10 23:43:06 字數 3437 閱讀 6567

陣列方法千千萬,不管多少,請先記住下面加粗字型部分(沒有原因,死記):

字串、物件的互**   json字串轉換為物件:   json.parse(str)                     json物件轉換為json字串:  json.stringify(arr)

陣列、字串的互**    陣列轉字串:join()                          字串通過特定的符號切割組成陣列:split()

好了,原因是我把上面的方法老記混,所以單獨提出來,下來,請看正題陣列

一、陣列的定義和特點

陣列是用來儲存一組相同資料型別的資料的資料結構。 

陣列變數屬於引用資料型別。

陣列中的元素可以是任何資料型別(基本型別和引用型別)。

二、陣列的語法

var arr = new array();

var arr = ;

三、陣列的複製

1、深複製和淺複製    

假設b複製了a,修改a的時候,看b是否發生變化:

如果b跟著也變了,說明是淺拷貝,拿人手短!(修改堆記憶體中的同乙個值)

如果b沒有改變,說明是深拷貝,自食其力!(修改堆記憶體中的不同的值)

2、直接用賦值表示式賦值的複製過程為淺複製

3、實現深複製的方法:for迴圈挨個賦值,es6陣列擴充套件運算子,利用陣列方法concat

四、陣列的操作

1、查詢元素

indexof();用來查詢元素在陣列中是否存在;存在則返回索引,不存在則返回-1

lastindexof();返回相同元素中最後乙個元素的索引

2、陣列轉化為字串

join(); tostring();

3、陣列的合併

concat():

concat() 方法用於連線兩個或多個陣列。

該方法不會改變現有的陣列,而僅僅會返回被連線陣列的乙個副本。

arrayobject.concat(arrayx,arrayx,......,arrayx)

splice():

向/從陣列中新增/刪除專案,然後返回被刪除的專案

該方法會改變原始陣列。

splice(position,numberofitemstoremove,item)

splice(索引位置,要刪除元素的數量,要新增的元素)

前兩個引數必需,第三個為不必需

slice():

可從已有的陣列中返回選定的元素。

該方法不會改變原始陣列。

arrayobject.slice(start,end)

返回乙個新的陣列,包含從 start 到 end (不包括該元素)的 arrayobject 中的元素

請注意,該方法並不會修改陣列,而是返回乙個子陣列。如果想刪除陣列中的一段元素,應該使用方法 array.splice()。 

五、可變函式

1、為陣列新增元素

push();方法可向陣列的末尾新增乙個或多個元素,並返回新的長度。arrayobject.push(newelement1[,newelement2],....[,newelementx])

unshift();陣列前插入 也是返回新的長度

splice();陣列中間新增元素

也可以使用length屬性為陣列新增元素,var num = [1,2,3] num[num.length] = 4,但push()方法看起來更直觀

2、從陣列中刪除元素

pop();刪除陣列末尾的元素,並並返回陣列的最後乙個元素

shift();刪除陣列的第乙個元素,並返回第乙個元素的值。

splice();刪除陣列中間的元素

splice(起始索引,[[需要刪除額元素個數(新增元素時該引數設為0)],要新增的陣列元素])

3、為陣列排序

reverse()方法可以將陣列中的元素進行翻轉

sort()方法可以對陣列進行排序,但是依據的字串排序,如果要排列的元素是數字,sort()方法的排序結果就不能讓人滿意了。但是可以在sort方法中傳遞乙個對比函式!

六、迭代器方法

迭代器方法可以對陣列中的每個元素對應執行乙個函式

1、不生成新陣列的迭代器方法

foreach()方法對陣列的每個元素執行一次提供的函式。arr.foreach(callback[, thisarg]);

every()方法測試乙個陣列內的所有元素是否都能通過某個指定函式的測試。它返回乙個布林值

some()方法測試陣列中是不是至少有1個元素通過了被提供的函式測試。它返回的是乙個boolean型別的值。

reduce()方法對陣列中的每個元素執行乙個由您提供的reducer函式(公升序執行),將其結果彙總為單個返回值

reduceright()

2、生成新陣列的迭代器方法

map()方法建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果。

filter()方法建立乙個新陣列, 其包含通過所提供函式實現的測試的所有元素。

案例:

上述**執行結果:

初步了解陣列

1 陣列應進行初始化 如 int a 10 初值不夠多,後元素自動初始化補0 2 注意陣列長度一定要是已經確定的數 如 define n 10 3 注意陣列的越界問題 如 int n n 10 for i 0 i 4 陣列從來都是從0開始 int a 10 i for i 0 i 10 i scan...

學習的列舉型別,結構以及初步了解陣列

今天首先總結了前面學習的順序結構,分支結構,迴圈結構和跳轉語句。然後就開始了新課的內容 列舉型別,結構和陣列。列舉型別 enum 關鍵字 自定義名字 列舉型別自定義取的名字 enum trafflight long class program 結構體,struct 關鍵字 舉例如下 顯示座標位置 c...

學習的列舉型別,結構以及初步了解陣列

今天首先總結了前面學習的順序結構,分支結構,迴圈結構和跳轉語句。然後就開始了新課的內容 列舉型別,結構和陣列。列舉型別 enum 關鍵字 自定義名字 列舉型別自定義取的名字 enum trafflight long class program 結構體,struct 關鍵字 舉例如下 顯示座標位置 c...