add:数组的其他方法

This commit is contained in:
qianguyihao
2019-02-03 19:50:42 +08:00
parent 89f865611a
commit be3cd9b7cf
8 changed files with 261 additions and 271 deletions

View File

@@ -168,6 +168,8 @@ set 属性名(){} 用来监视当前属性值变化的回调函数
> 下面讲的这几个方法,都是给数组的实例用的。
> 下面提到的数组的这五个方法更详细的内容可以看《03-JavaScript基础/15-数组的四个基本方法&数组的遍历.md》、《03-JavaScript基础/17-数组的其他方法.md》。
**方法1**
@@ -175,7 +177,7 @@ set 属性名(){} 用来监视当前属性值变化的回调函数
Array.prototype.indexOf(value)
```
作用:获取在数组中的第一个下标。
作用:获取 value 在数组中的第一个下标。
**方法2**
@@ -184,15 +186,7 @@ set 属性名(){} 用来监视当前属性值变化的回调函数
Array.prototype.lastIndexOf(value)
```
作用:获取在数组中的最后一个下标。
举例:
```javascript
var arr = [1, 3, 6, 2, 5, 6];
console.log(arr.indexOf(6));//2
console.log(arr.lastIndexOf(6));//5
```
作用:获取 value 在数组中的最后一个下标。
**方法3**:遍历数组
@@ -201,20 +195,6 @@ set 属性名(){} 用来监视当前属性值变化的回调函数
Array.prototype.forEach(function(item, index){})
```
举例:
```javascript
var arr = [1, 3, 6, 2, 5, 6];
arr.forEach(function (item, index) {
console.log(item, index);
});
```
打印结果:
![](http://img.smyhvae.com/20180402_0929.png)
**方法4**
@@ -224,50 +204,15 @@ set 属性名(){} 用来监视当前属性值变化的回调函数
作用:遍历数组返回一个新的数组,返回的是**加工之后**的新数组。
比如说有一个已知的数组arr1我要求让arr1中的每个素加10这里就可以用到map方法。举例
```javascript
var arr1 = [1, 3, 6, 2, 5, 6];
var arr2 = arr1.map(function (item, index) {
return item + 10; //让arr1中的每个元素加10
})
console.log(arr2);
```
打印结果:
![](http://img.smyhvae.com/20180402_0938.png)
**方法5**
```javascript
Array.prototype.filter(function(item, index){})
```
作用遍历过滤出一个新的子数组返回条件为true的值。
举例让找出数组arr1中大于4的元素返回一个新的数组。代码如下
```javascript
var arr1 = [1, 3, 6, 2, 5, 6];
var arr2 = arr1.filter(function (item, index) {
return item > 4; //将arr1中大于4的元素返回
})
console.log(arr2);
```
打印结果:
![](http://img.smyhvae.com/20180402_0951.png)
## 函数function的扩展bind()
> ES5中新增了`bind()`函数来改变this的指向。

View File

@@ -85,8 +85,9 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
## 数组的扩展
### 扩展1
> 下面提到的数组的几个方法更详细的内容可以看《03-JavaScript基础/17-数组的其他方法.md》。
### 扩展1Array.from()
```javascript
Array.from(伪数组/可遍历的对象)
@@ -131,8 +132,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
![](http://img.smyhvae.com/20180402_1125.png)
### 扩展2
### 扩展2Array.of()
```javascript
Array.of(value1, value2, value3)
@@ -149,7 +149,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
console.log(arr);
```
### 扩展3
### 扩展3find() 和 findIndex()
**方法1**
@@ -158,19 +158,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
find(function(item, index, arr){return true})
```
**作用**找出第一个满足「指定条件返回true」的元素。
举例:
```javascript
let arr = [2, 3, 2, 5, 7, 6];
let result = arr.find(function (item, index) {
return item > 4; //遍历数组arr一旦发现有第一个元素大于4就把这个元素返回
});
console.log(result); //打印结果5
```
**作用**:找出**第一个**满足「指定条件返回true」的元素。
**方法2**
@@ -180,19 +168,6 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
**作用**找出第一个满足「指定条件返回true」的元素的index。
举例:
> 我们直接把上面的代码中的find方法改成findIndex即可。
```javascript
let arr = [2, 3, 2, 5, 7, 6];
let result = arr.findIndex(function (item, index) {
return item > 4; //遍历数组arr一旦发现有第一个元素大于4就把这个元素的index返回
});
console.log(result); //打印结果3
```
## 对象的扩展