JS陣列及操作方法,堆和棧的概念

2021-09-29 06:29:12 字數 1922 閱讀 3330

一、陣列

1.陣列就是個容器,裡面可以存放任意型別的數

2.定義陣列:1)var arr = ;

2)var arr = new array();建構函式定義方式,如果括號中有乙個整數,該正數代表的是陣列的長度

3.陣列長度屬性:length

4.陣列的資料型別:object

5.取出陣列中的資料:陣列名[下標],下標從0開始,最大下標為length-1

二、陣列的遍歷

1.使用for迴圈

2.使用for...in

3.for...in特點:1)沒有迴圈條件

2)自動取出下標,下標是從0開始到最大下標自動結束迴圈

3)下標的資料型別是string

4)for...in只能遍歷物件

三、二維陣列

1.var arr = [[1,2],[3,4],[5,6]];

取二維陣列中的陣列元素:arr[行下標][列下標]

四、陣列的操作方法

pop();刪除陣列尾部的資料,返回刪除的陣列元素

push();向陣列尾部新增乙個或多個數,返回增加後的陣列長度

shift();刪除陣列的第乙個數,返回被刪除的陣列元素

unshift();向陣列首部新增乙個或多個數,返回增加後的陣列長度

splice();可以實現刪除新增 替換等操作(返回被刪除的陣列元素):

乙個引數:splice(start)start表示開始下標,表示從start位置開始刪除陣列後面所有的數

二個引數:splice(start,length)表示從指定位置開始刪除指定長度的資料

三個引數:splice(start,length,num1)當length值為0時,向start位置處新增乙個或多個資料;當length值為1時,向start位置處替換資料(資料可以有多個)

以上五個方法在運算元組的同時會改變原陣列

slice(start,end)從start開始位置擷取到end位置處的資料,但擷取的資料不包括end位置處的資料,同時該方法不會改變原陣列,返回乙個新陣列

concat();將乙個或多個陣列合併成乙個新陣列,該方法不會改變原陣列,返回合併後的新陣列

join(連線符);通過特定的字元將陣列轉成字串,不會改變原陣列,返回乙個字串

reverse()陣列的反轉,會改變原陣列,返回反轉後的陣列,返回值與原陣列相同

五、棧和堆

1.棧:當我們定義乙個變數時,計算機就會開闢一塊儲存空間存放變數的值,這樣的空間就叫做棧

一般棧中存放的是基本資料型別

乙個棧記憶體中只存放乙個變數的值

棧的特點:有底無頂,先進後出

2.堆:堆中存放的是批量資料

根據物件的位址才可以找到堆中的資料

一改全改(指向同乙個位址的變數值之間互相影響)

值傳遞:引數之間互不影響

六、氣泡排序

原理:相鄰的兩個數進行比較,大數下沉,小數上浮(公升序)

七、選擇排序

原理:每一輪比較時,分別取出陣列中的某個數(arr[0]、arr[1]...)和後面的數依次比較,如果錢乙個數大於後乙個數就交換(公升序)

八、sort排序

原理:預設按照字元排序 陣列.sort(),沒有引數按照字元排序

如果按照數值排序,sort需要加乙個引數,引數是乙個匿名函式

用法:arr.sort(function(a,b){

return a-b;//公升序,如果降序return b-a;降序

JS陣列的操作方法

var colors red blue green colors.length 計算陣列長度 array.isarray colors 檢測是否為陣列 colors.join 指定引號內的字串為分隔符 colors.push red green 推入陣列的最後 colors.pop 取得陣列的最後項...

js陣列的操作方法

向陣列的末尾新增元素返回值為當前操作的陣列的操作以後的長度 1 var arr 2,3,4,5,6,6 2 arr.push 8,9 push 新增到陣列末尾 3 console.log arr 2,3,4,5,6,6,8,9 刪除陣列的最後一項,並返回刪除元素的值 如果陣列為空則返回undefin...

js常用陣列操作方法

concat 方法用於連線兩個或多個陣列。該方法不會改變現有的陣列,僅會返回被連線陣列的乙個副本。var arr1 1,2,3 var arr2 4,5 var arr3 arr1.concat arr2 console.log arr1 1,2,3 console.log arr3 1,2,3,4...