2
2
3
3
## 前言
4
4
5
- 数组的四个基本方法如下:
5
+ ** 数组的四个基本方法如下** :
6
6
7
7
| 方法 | 描述 | 备注 |
8
8
| :-------------| :-------------| :-------------|
11
11
| unshift() | 在数组** 最前面** 插入一个或多个元素,返回结果为** 该数组新的长度** | 会改变原数组|
12
12
| shift() | 删除数组中的** 第一个** 元素,返回结果为** 被删除的元素** | 会改变原数组|
13
13
14
+ ** 遍历数组的方法如下** :(这几个方法都不会修改原数组)
14
15
15
- 遍历数组的方法如下:
16
+ | 方法 | 描述 | 备注 |
17
+ | :-------------| :-------------| :-------------|
18
+ | for循环 | 这个大家都懂| |
19
+ | forEach()| 和 for循环类似,但需要兼容IE8以上 | |
20
+ | filter()| 返回结果是true的项,将组成新的数组| 可以起到过滤的作用|
21
+ | map()| 对原数组中的每一项进行加工 | |
22
+ | every()| 如果有一项返回false,则停止遍历 | 意思是,要求每一项都返回true,最终的结果才返回true |
23
+ | some()| 只要有一项返回true,则停止遍历 | |
16
24
17
25
18
26
## 数组的四个基本方法(数组元素的添加和删除)
113
121
114
122
## 数组的遍历
115
123
116
- 遍历数组即:获取并操作数组中的每一个元素。
124
+ 遍历数组即:获取并操作数组中的每一个元素。在我们的实战开发中,使用得非常频繁。
117
125
118
- 数组迭代方法包括 :every()、filter()、forEach()、map()、some()
126
+ 遍历数组的方法包括 :every()、filter()、forEach()、map()、some()
119
127
120
128
PS:这几个方法** 不会修改原数组** 。
121
129
@@ -146,6 +154,7 @@ PS:这几个方法**不会修改原数组**。
146
154
147
155
![ ] ( http://img.smyhvae.com/20180124_2008.png )
148
156
157
+
149
158
### forEach() 遍历
150
159
151
160
> ` forEach() ` 这种遍历方法只支持IE8以上的浏览器。IE8及以下的浏览器均不支持该方法。所以如果需要兼容IE8,则不要使用forEach,改为使用for循环来遍历即可。
@@ -166,14 +175,14 @@ forEach()方法需要一个函数作为参数。这种函数,是由我们创
166
175
代码举例:
167
176
168
177
``` javascript
169
- var arr = [" 王一" , " 王二" , " 王三" ];
178
+ var arr = [" 王一" , " 王二" , " 王三" ];
170
179
171
- arr .forEach (function (item , index , obj ) {
172
- console .log (" item:" + item);
173
- console .log (" index:" + index);
174
- console .log (" obj:" + obj);
175
- console .log (" ----------" );
176
- });
180
+ arr .forEach (function (item , index , obj ) {
181
+ console .log (" item:" + item);
182
+ console .log (" index:" + index);
183
+ console .log (" obj:" + obj);
184
+ console .log (" ----------" );
185
+ });
177
186
```
178
187
179
188
打印结果:
@@ -195,90 +204,94 @@ obj:王一,王二,王三
195
204
----------
196
205
```
197
206
198
- ### map()方法
199
207
200
- 解释:对数组中每一项运行回调函数,返回该函数的结果,组成的新数组(返回的是 ** 加工之后 ** 的新数组)。
208
+ ### filter()
201
209
202
- 比如说,有一个已知的数组arr1,我要求让arr1中的每个素加10,这里就可以用到map方法。举例 :
210
+ 语法 :
203
211
204
212
``` javascript
205
- var arr1 = [1 , 3 , 6 , 2 , 5 , 6 ];
213
+ Array .prototype .filter (function (item , index ){})
214
+ ```
206
215
207
- var arr2 = arr1 .map (function (item , index ) {
208
- return item + 10 ; // 让arr1中的每个元素加10
216
+ 解释:对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组(返回值就是这个新的数组)。
217
+
218
+
219
+ 举例1:找出数组 arr1 中大于4的元素,返回一个新的数组。代码如下:
209
220
221
+
222
+ ``` javascript
223
+ var arr1 = [1 , 3 , 6 , 2 , 5 , 6 ];
224
+
225
+ var arr2 = arr1 .filter (function (item , index ) {
226
+ return item > 4 ; // 将arr1中大于4的元素返回
210
227
})
211
228
console .log (arr2);
229
+
212
230
```
213
231
214
232
打印结果:
215
233
216
- ![ ] ( http://img.smyhvae.com/20180402_0938 .png )
234
+ ![ ] ( http://img.smyhvae.com/20180402_0951 .png )
217
235
218
236
举例2:
219
237
220
238
``` javascript
221
239
var arr1 = [" 千古" , " 宿敌" , " 南山忆" , " 素颜" ];
222
240
223
- var arr2 = arr1 .map (function (element , index , array ) {
224
- return element + " vae" ; // 给arr1中所有的元素增加字符串"vae",放到arr2中。
241
+ var arr2 = arr1 .filter (function (element , index , array ) {
242
+ if (element .length > 2 ) { // arr1中的元素,如果是长度超过2个字符的,我就把它放到arr2中去
243
+ return true ;
244
+ }
245
+ return false ;
225
246
});
226
-
227
247
console .log (arr1);
228
248
console .log (arr2);
249
+
229
250
```
230
251
231
252
结果:
232
253
233
- ![ ] ( http://img.smyhvae.com/20180126_1425.png )
234
-
235
- ### filter
236
-
237
- 语法:
238
-
239
- ``` javascript
240
- Array .prototype .filter (function (item , index ){})
241
- ```
254
+ ![ ] ( http://img.smyhvae.com/20180126_1410.png )
242
255
243
- 解释:对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组(返回值就是这个新的数组)。
244
256
257
+ ### map()方法
245
258
246
- 举例1:找出数组 arr1 中大于4的元素,返回一个新的数组。代码如下:
259
+ 解释:对数组中每一项运行回调函数,返回该函数的结果,组成的新数组(返回的是 ** 加工之后 ** 的新数组)。
247
260
261
+ 比如说,有一个已知的数组arr1,我要求让arr1中的每个素加10,这里就可以用到map方法。举例:
248
262
249
263
``` javascript
250
264
var arr1 = [1 , 3 , 6 , 2 , 5 , 6 ];
251
265
252
- var arr2 = arr1 .filter (function (item , index ) {
253
- return item > 4 ; // 将arr1中大于4的元素返回
266
+ var arr2 = arr1 .map (function (item , index ) {
267
+ return item + 10 ; // 让arr1中的每个元素加10
268
+
254
269
})
255
270
console .log (arr2);
256
-
257
271
```
258
272
259
273
打印结果:
260
274
261
- ![ ] ( http://img.smyhvae.com/20180402_0951 .png )
275
+ ![ ] ( http://img.smyhvae.com/20180402_0938 .png )
262
276
263
277
举例2:
264
278
265
279
``` javascript
266
280
var arr1 = [" 千古" , " 宿敌" , " 南山忆" , " 素颜" ];
267
281
268
- var arr2 = arr1 .filter (function (element , index , array ) {
269
- if (element .length > 2 ) { // arr1中的元素,如果是长度超过2个字符的,我就把它放到arr2中去
270
- return true ;
271
- }
272
- return false ;
282
+ var arr2 = arr1 .map (function (element , index , array ) {
283
+ return element + " vae" ; // 给arr1中所有的元素增加字符串"vae",放到arr2中。
273
284
});
285
+
274
286
console .log (arr1);
275
287
console .log (arr2);
276
-
277
288
```
278
289
279
290
结果:
280
291
281
- ![ ] ( http://img.smyhvae.com/20180126_1410.png )
292
+ ![ ] ( http://img.smyhvae.com/20180126_1425.png )
293
+
294
+
282
295
283
296
### every()方法
284
297
0 commit comments