JavaScript,難點來啦,陣列

語言: CN / TW / HK

陣列的概念

陣列就是一組數(一般來說,資料型別一樣),相當於一次性定義了很多相同資料型別的變數,如果說單個變數是一個小容器,陣列就是有多個格檔的大容器(每個格檔是個小容器)。
也就是儲存一組相同的資料型別的資料
例如定義一個數組:var arr = [1,2,3];(字面量宣告)
陣列下標----訪問陣列的值的方法:arr[index]
注意:下標是從0開始
陣列的長度----arr.length(可以隨時被更改)
例如: js var arr = [1,2,3] ; console.log(arr[10]); // 此時arr[10]沒有被賦值,undefined // [1,2,3,,,,,,,20] // 實際上變相的加長了陣列的長度 arr[10] = 20 ; console.log(arr[10]); console.log(arr.length); // 賦值後陣列的長度就發生了改變

陣列的宣告

  1. 字面量宣告:var arr = [1,2,3]
  2. 例項化一個物件:var arr = new Array(1,2,3) ;( Array建構函式(用於建立物件的),當Array只有一個引數的時候,表示陣列的長度) 例如:宣告一個數組存入10個數:

js //定義一個空陣列 var arr = []; for (var i = 0; i < 10; i++) { //存入值 arr[i] =i ; } console.log(arr)//列印[0,1,2,3,4,5,6,7,8,9]

陣列的遍歷

遍歷:讀取陣列中的每一個值。
普通迴圈遍歷

js //普通迴圈遍歷,讀取資料中的每個值 for(var i = 0 ; i < arr.length ; i++) { console.log(arr[i]); } for in(用於遍歷物件的角標---bug(自動過濾空值))

js for in 用於遍歷物件的角標 -- bug(自動過濾掉空值) for(var i in arr) { console.log(arr[i]); } for of (遍歷物件 的值value)

js for (var v of arr) { console.log(v); } 應用:找到陣列中的最大值:思路就是,相當於假設法,先定義一個值,把他當做最大值,然後與陣列中的值一一比較,比他大的話,大值就賦值賦值給他,直到比較完。

```js

```

陣列的基本方法:

push(v1,v2,v3...) 向陣列尾部追加值
pop() 在陣列尾部刪除一個值
unshift() 向陣列的頭部追加值
shift() 向陣列的頭部刪除一個值
這裡必須要提一提偽陣列arguments的用法:
一般情況下,使用形參來接受實參的值, 但是可以使用arguments來接受實參
例如封裝上面所說的陣列的方法push

js var arr = [1, 2, 3, 4, 5] //給push封裝,向陣列尾部追加值 function push() { //arguments 偽陣列,遍歷偽陣列,存入arr中,每迴圈一次,arr.length的值會加一。進而可以存值 for (var i = 0; i < arguments.length; i++) { arr[arr.length] = arguments[i]; } console.log(arr); } push(6, 7, 'hello', 'hi')//[1,2,3,4,5,6,7, 'hello', 'hi'] 封裝上面所說的陣列的方法pop:

js var arr = [1, 2, 3, 4, 5] //給pop封裝,在陣列尾部刪除一個值 function pop() { //定義一個空陣列arr1 var arr1 = []; //遍歷除去最後一個數的arr陣列,並加到空陣列中 for (var i = 0; i < arr.length - 1; i++) { arr1.push(arr[i]) } console.log(arr1) } pop()//[1,2,3,4] 封裝上面所說的陣列的方法unshift:

js var arr = [1, 2, 3, 4, 5] //給unshift封裝,向陣列的頭部追加值 function unshift() { var arr3 = []; for (var i = 0; i < arguments.length; i++) { arr3[arr3.length] = arguments[i]; } for (i = 0; i < arr.length; i++) { arr3.push(arr[i]) } console.log(arr3) } unshift('a', 'b', 8)//['a', 'b', 8,1,2,3,4,5] 封裝上面所說的陣列的方法shift:

js var arr = [1, 2, 3, 4, 5] 給shift封裝,向陣列頭部刪除一個值 function shift() { var arr2 = []; //遍歷除去第一個數的陣列arr for (var i = 1; i < arr.length; i++) { arr2.push(arr[i]) } console.log(arr2) } shift()//[2,3,4,5]

陣列的排序方式:

  1. 氣泡排序
  2. 選擇排序 相信這是很多小白的第一個小難點,單獨拿一篇部落格來說