Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9cb2b75

Browse files
committed
update:遍历数组的方法
1 parent 61b9cd3 commit 9cb2b75

File tree

1 file changed

+56
-43
lines changed

1 file changed

+56
-43
lines changed

03-JavaScript基础/15-数组的四个基本方法&数组的遍历.md

Lines changed: 56 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 前言
44

5-
数组的四个基本方法如下:
5+
**数组的四个基本方法如下**
66

77
| 方法 | 描述 | 备注 |
88
|:-------------|:-------------|:-------------|
@@ -11,8 +11,16 @@
1111
| unshift() | 在数组**最前面**插入一个或多个元素,返回结果为**该数组新的长度**| 会改变原数组|
1212
| shift() | 删除数组中的**第一个**元素,返回结果为**被删除的元素**| 会改变原数组|
1313

14+
**遍历数组的方法如下**:(这几个方法都不会修改原数组)
1415

15-
遍历数组的方法如下:
16+
| 方法 | 描述 | 备注 |
17+
|:-------------|:-------------|:-------------|
18+
| for循环 | 这个大家都懂| |
19+
| forEach()|和 for循环类似,但需要兼容IE8以上 | |
20+
| filter()| 返回结果是true的项,将组成新的数组| 可以起到过滤的作用|
21+
| map()| 对原数组中的每一项进行加工 | |
22+
| every()| 如果有一项返回false,则停止遍历 | 意思是,要求每一项都返回true,最终的结果才返回true |
23+
| some()| 只要有一项返回true,则停止遍历 | |
1624

1725

1826
## 数组的四个基本方法(数组元素的添加和删除)
@@ -113,9 +121,9 @@
113121

114122
## 数组的遍历
115123

116-
遍历数组即:获取并操作数组中的每一个元素。
124+
遍历数组即:获取并操作数组中的每一个元素。在我们的实战开发中,使用得非常频繁。
117125

118-
数组迭代方法包括:every()、filter()、forEach()、map()、some()
126+
遍历数组的方法包括:every()、filter()、forEach()、map()、some()
119127

120128
PS:这几个方法**不会修改原数组**
121129

@@ -146,6 +154,7 @@ PS:这几个方法**不会修改原数组**。
146154

147155
![](http://img.smyhvae.com/20180124_2008.png)
148156

157+
149158
### forEach() 遍历
150159

151160
> `forEach()` 这种遍历方法只支持IE8以上的浏览器。IE8及以下的浏览器均不支持该方法。所以如果需要兼容IE8,则不要使用forEach,改为使用for循环来遍历即可。
@@ -166,14 +175,14 @@ forEach()方法需要一个函数作为参数。这种函数,是由我们创
166175
代码举例:
167176

168177
```javascript
169-
var arr = ["王一", "王二", "王三"];
178+
var arr = ["王一", "王二", "王三"];
170179

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+
});
177186
```
178187

179188
打印结果:
@@ -195,90 +204,94 @@ obj:王一,王二,王三
195204
----------
196205
```
197206

198-
### map()方法
199207

200-
解释:对数组中每一项运行回调函数,返回该函数的结果,组成的新数组(返回的是**加工之后**的新数组)。
208+
### filter()
201209

202-
比如说,有一个已知的数组arr1,我要求让arr1中的每个素加10,这里就可以用到map方法。举例
210+
语法
203211

204212
```javascript
205-
var arr1 = [1, 3, 6, 2, 5, 6];
213+
Array.prototype.filter(function(item, index){})
214+
```
206215

207-
var arr2 = arr1.map(function (item, index) {
208-
return item + 10; //让arr1中的每个元素加10
216+
解释:对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组(返回值就是这个新的数组)。
217+
218+
219+
举例1:找出数组 arr1 中大于4的元素,返回一个新的数组。代码如下:
209220

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的元素返回
210227
})
211228
console.log(arr2);
229+
212230
```
213231

214232
打印结果:
215233

216-
![](http://img.smyhvae.com/20180402_0938.png)
234+
![](http://img.smyhvae.com/20180402_0951.png)
217235

218236
举例2:
219237

220238
```javascript
221239
var arr1 = ["千古", "宿敌", "南山忆", "素颜"];
222240

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;
225246
});
226-
227247
console.log(arr1);
228248
console.log(arr2);
249+
229250
```
230251

231252
结果:
232253

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)
242255

243-
解释:对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组(返回值就是这个新的数组)。
244256

257+
### map()方法
245258

246-
举例1:找出数组 arr1 中大于4的元素,返回一个新的数组。代码如下:
259+
解释:对数组中每一项运行回调函数,返回该函数的结果,组成的新数组(返回的是**加工之后**的新数组)。
247260

261+
比如说,有一个已知的数组arr1,我要求让arr1中的每个素加10,这里就可以用到map方法。举例:
248262

249263
```javascript
250264
var arr1 = [1, 3, 6, 2, 5, 6];
251265

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+
254269
})
255270
console.log(arr2);
256-
257271
```
258272

259273
打印结果:
260274

261-
![](http://img.smyhvae.com/20180402_0951.png)
275+
![](http://img.smyhvae.com/20180402_0938.png)
262276

263277
举例2:
264278

265279
```javascript
266280
var arr1 = ["千古", "宿敌", "南山忆", "素颜"];
267281

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中。
273284
});
285+
274286
console.log(arr1);
275287
console.log(arr2);
276-
277288
```
278289

279290
结果:
280291

281-
![](http://img.smyhvae.com/20180126_1410.png)
292+
![](http://img.smyhvae.com/20180126_1425.png)
293+
294+
282295

283296
### every()方法
284297

0 commit comments

Comments
 (0)