hello javascript datastruct(01)

#資料結構 Array

####建立初始化陣列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> //fibonacci數列
>
> var fibonacci = []; //初始化
> fibonacci[1] = 1;
> fibonacci[2] = 1;
>
> for ( i=3 ; i < 11 ; i++) {
> fibonacci[i] = fibonacci[i-2] + fibonacci[i-1];
> };
>
> for ( i=1 ; i < fibonacci.length; i++) {
> console.log(fibonacci[i]);
> }
>
>

####添加和刪除元素

push(添加最後項)<==> pop (移除最後項)

unshift(添加最前項)<==> shift (其除最前項)

####二維和多維陣列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>//二維陣列
>
>var averageTemp = [];
>
>averageTemp[0] = [];
>averageTemp[0][0] = 72;
>averageTemp[0][1] = 75;
>averageTemp[0][2] = 79;
>averageTemp[0][3] = 79;
>averageTemp[0][4] = 81;
>averageTemp[0][5] = 81;
>
>averageTemp[1] = [];
>averageTemp[1][0] = 81;
>averageTemp[1][1] = 79;
>averageTemp[1][2] = 75;
>averageTemp[1][3] = 75;
>averageTemp[1][4] = 73;
>averageTemp[1][5] = 72;
>
>function printMatrix(myMatrix) {
> for (var i=0; i<myMatrix.length; i++){
> for (var j=0; j<myMatrix[i].length; j++)
> {
> console.log(myMatrix[i][j]);
> }
> }
>}
>
>printMatrix(averageTemp);
>
>

####陣列方法(合併、迭代器函數、搜尋和排序、輸出陣列為字串)

方法名 描述
concat 連接2個或更多陣列,並返回結果
every 對陣列中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true
filter 對陣列中的每一項運行給定函數,返回該函數會返回、true的項目組成的陣列
forEach 對陣列中的每一項運行給定函數。這個方法沒有返回值
join 將所有的陣列元素連接成一個字串
indexOf 返回第一個與給定參數相等的陣列元素的索引,沒有找到則返回-1
lastIndexOf 返回在陣列中搜尋到與給定參數相等的元素的索引裡最大的值
map 對陣列中的每一項運行給定函數,返回每次函數呼叫的結果組成的陣列
reverse 顛倒陣列中元素的順序,原先第一個元素現在變成最後一個,同樣原先的最後一個元素變成了現在的第一個
slice 傳入索引值,將陣列裡對應索引範圍內的元素作為新陣列反回
some 對陣列中的每一項運行給定函數,如果任一項返回true,則返回true
sort 按照字母順序對陣列排序,支援傳入指定排序方法的函數作為參數
toString 將陣列作為字串返回
valueOf 和toString類似,將陣列作為字串返回

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//簡單實作用push加新元素進入array裡
//結果由 [1, 2, 3, 4, 5]
//變 [1, 2, 3, 4, 5, 6]
var HarryPotter = [1, 2, 3, 4, 5];
console.log("Before: ")
for (var i=0; i<HarryPotter.length; i++){
console.log(HarryPotter[i]);
}
HarryPotter.push(6)
console.log()
console.log("After: ")
for (var i=0; i<HarryPotter.length; i++){
console.log(HarryPotter[i]);
}