-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArray01.html
226 lines (155 loc) · 6.58 KB
/
Array01.html
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="jquery-1.12.3.js"></script>
</head>
<body>
<div>
</div>
<div>
</div>
<div>
</div>
<script>
var color = [];
console.log(color.length);
color[0] = "red";
color[1] = "green";
color[2] = "blue";
console.log(color.length);
color[color.length] = "orange"; //附加元素至陣列的末端
console.log(color.length);
color.push('purple'); //附加元素至陣列的末端
console.log(color[color.length - 1]);
var lastElement = color.pop(); /* color的最後一個元素也被移除 */
console.log(color[color.length - 1]);
///////////length
var cats = [];
cats[30]=["Dusty"];
console.log(cats.length); //lenght:31
var dog = ["Dusty", "Misty", "Twiggy"];
console.log(dog.length);
dog.length = 2;
console.log(dog); // 輸出 "Dusty,Misty" - Twiggy 被移除了
dog.length = 0; //寫下 0 就完全清空陣列
console.log(dog); // 陣列是空的
////////迭代整個陣列
var aa = ["red", "green", "blue"];
for (var i = 0; i < aa.length; i++) {
console.log(aa[i]);
}
/////Array 的方法
var a1 = [1, 2, 3];
var a2 = a1.concat(['a', 'b', 'c']); //concat 合併兩個陣列,並把新的陣列返回
console.log(a2);
var a = ['wind', 'rain', 'fire'];
console.log(a.join(' **')); //join(deliminator = ",") 把所有的陣列元素合併成字串
var b = [1, 2, 3];
var last = b.pop(); //pop 移除掉陣列的最後一個元素,並把這個元素返回
console.log(b);
console.log(last);
var c = [1, 2];
c.push(3); //push 在陣列的末端加入一個以上的元素,並返回新的陣列長度
console.log(c);
var d = [1, 2, 3, 4];
d.reverse(); //reverse 反轉陣列元素的順序至適當的位置
console.log(d);
var e = [1, 2, 3];
var first = e.shift(); //shift 移除並返回陣列的第一個元素
console.log(e);
console.log(first);
var f = [1, 2, 3];
f.unshift(4,5); //unshift 在陣列的開頭處加入一個以上的元素,並返回新的陣列長度。
console.log(f);
var g = ['a', 'b', 'c', 'd', 'e','aa','bb','cc'];
var g1 = g.slice(1, 5); //slice (start_index, upto_index) 返回陣列的片斷 (1,5) print出1,2,3,4的值
console.log(g1);
var h = ['a', 'b', 'c', 'd', 'e'];
var removed = h.splice(1, 3, 'f', 'g', 'h', 'i');
//splice(index, count_to_remove, addelement1, addelement2, ...) 加入 和/或 移除陣列的元素,在適當的位置修改。
console.log(removed);
console.log(h);
var b1 = ['Wind', 'Rain', 'Fire'];
b1.sort(); //sort 在適當的位置排序陣列的元素
console.log(b1);
var d1 = ['a', 'b', 'a', 'b', 'a']; //indexOf(searchElement, fromIndex) 在陣列中搜尋 searchElement 並返回第一個符合項的索引
console.log(d1.indexOf('b')); //回傳1
console.log(d1.indexOf('b', 2)); //index從2開始,回傳3
console.log(d1.indexOf('z')); //因為找不到z,回傳-1
var d2 = ['a', 'b', 'c', 'd', 'a', 'b'];
console.log(d2.lastIndexOf('b')); //回傳5
console.log(d2.lastIndexOf('b', 4)) // index從4開始往回找
console.log(d2.lastIndexOf('z')) //沒找到回傳-1
//建立二維陣列
var aaa = [];
for (ii = 0; ii < 4; ii++) {
aaa[ii] = [];
for (jj= 0; jj < 4; jj++) {
aaa[ii][jj] = "[" + ii + ", " + jj + "]";
console.log(aaa[ii][jj]);
}
}
//接收數字的陣列,並建立每一個數字的雙倍的新陣列
//var numbers = [1, 2, 3, 4];
//var doubled = [i * 2 for each (i in numbers)];
//console.log(doubled);
//接收數字的陣列,並建立每一個數字的雙倍的新陣列
var numbers = [1, 2, 3, 4];
var doubled = numbers.map(function (i) { return i * 2; });
console.log(doubled);
//選取符合特定表達式的項目
//var numbers1 = [1, 2, 3, 21, 22, 30];
//var evens1 = [i for each (i in numbers1) if (i % 2 == 0)];
//console.log(evens1);
//選取符合特定表達式的項目
var numbers2 = [1, 2, 3, 21, 22, 30];
var evens = numbers2.filter(function (i) { return i % 2 == 0; });
console.log(evens);
//map() 和 filter() 這類型的操作可以合併至單一的陣列簡約式
var numbers3 = [1, 2, 3, 21, 22, 30];
var Even3 = numbers3.filter(function (j) { return j % 2 == 0; });
var double3 = Even3.map(function (i) { return i * 3; });
console.log(double3);
var divs = document.getElementsByTagName('div');
console.log(divs[2]);
for (var i = 0, div; div = divs[i]; i++) {
/* 以同樣方式處理 div */
}
for (var i = 0; i < divs.length; i++) {
}
var colors = ['red', 'green', 'blue'];
colors.forEach(function (color) {
console.log(color);
});
$.each(colors, function (k, v) {
console.log(v);
})
//sort 也可以接受 Callback 函數來決定如何排序陣列的內容。這個函數會對兩個值做比較,並返回下列三個值其中之一︰
//例如:會以字串的最後一個字母來排序︰
var xxx = ['Wind', 'Rain', 'Fire'];
function sortFn(c1, c2) {
//Wind . 4
//3
var lastA = c1[0];
var lastB = c2[0];
if (lastA < lastB) return -1; //如果 c1 在排序系統中小於 c2,返回 -1(或任意的負數)
if (lastA > lastB) return 1; //如果 c1 在排序系統中大於 c2,返回 1(或任意的正數)
if (lastA == lastB) return 0; //如果 c1 和 c2 被認為是相等的,返回 0。
}
xxx.sort(sortFn);
console.log(xxx);
var myarray = [5, 10, 15];
//[0,1,2]
//[5,10,15]
function mySortFn(a, b) {
if (a > b) return -1;
if (a < b) return 1;
return 0;
}
myarray.sort(mySortFn);
console.log(myarray);
</script>
</body>
</html>