update: 数组的常见方法

This commit is contained in:
qianguyihao 2019-09-21 12:53:18 +08:00
parent 03bb108bbe
commit 148fe61243
2 changed files with 43 additions and 50 deletions

View File

@ -32,8 +32,8 @@
| forEach()|和 for循环类似但需要兼容IE8以上 |forEach() 没有返回值。也就是说,它的返回值是 undefined| | forEach()|和 for循环类似但需要兼容IE8以上 |forEach() 没有返回值。也就是说,它的返回值是 undefined|
| map()| 对原数组中的每一项进行加工,将组成新的数组 | 不会改变原数组 | | map()| 对原数组中的每一项进行加工,将组成新的数组 | 不会改变原数组 |
| filter()| 对数组中每一项运行回调函数该函数返回结果是true的项将组成新的数组返回结果为**新的数组**。可以起到过滤的作用| 不会改变原数组| | filter()| 对数组中每一项运行回调函数该函数返回结果是true的项将组成新的数组返回结果为**新的数组**。可以起到过滤的作用| 不会改变原数组|
| every()| 如果有一项返回false则停止遍历 | 意思是,要求每一项都返回true最终的结果才返回true | | every()| 如果有一项返回false则停止遍历,此方法返回 false | 一假即假。要求每一项都返回true最终的结果才返回true |
| some()| 只要有一项返回true则停止遍历 | | | some()| 只要有一项返回true则停止遍历此方法返回true | 一真即真。要求每一项都返回false最终的结果才返回false|
| reduce | | | | reduce | | |
**数组的其他方法如下** **数组的其他方法如下**
@ -120,7 +120,6 @@
``` ```
### shift() ### shift()
`shift()`:删除数组中的**第一个**元素,返回结果为**被删除的元素**。 `shift()`:删除数组中的**第一个**元素,返回结果为**被删除的元素**。
@ -142,16 +141,11 @@
console.log(JSON.stringify(arr)); // 打印结果:["王二","王三"] console.log(JSON.stringify(arr)); // 打印结果:["王二","王三"]
``` ```
## 数组的常见方法 ## 数组的常见方法
### slice() ### slice()
`slice()`:从数组中提取指定的一个或者多个元素,返回结果为**新的数组**(不会改变原来的数组)。 `slice()`:从数组中**提取**指定的一个或者多个元素,返回结果为**新的数组**(不会改变原来的数组)。
备注:该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回。 备注:该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回。
@ -200,17 +194,17 @@ array = Array.prototye.slice.call(arrayLike)
array = [].slice.call(arrayLike) array = [].slice.call(arrayLike)
``` ```
ES6 看不下去这种蹩脚的转化方法,于是出了一个新的 API专门用来将伪数组转化成真数组 ES6 看不下去这种蹩脚的转化方法,于是出了一个新的 API专门用来将伪数组转化成真数组
```javascript ```javascript
array = Array.from(arrayLike) array = Array.from(arrayLike)
``` ```
### splice() ### splice()
`splice()`:从数组中**删除**指定的一个或多个元素,返回结果为**新的数组**(会改变原来的数组,会将指定元素从原数组中删除)。 `splice()`:从数组中**删除**指定的一个或多个元素,返回结果为**新的数组**(会改变原来的数组)。
备注:该方法会改变原数组,会将指定元素从原数组中删除;被删除的元素会封装到一个新的数组中返回。
语法: 语法:
@ -228,43 +222,56 @@ array = Array.from(arrayLike)
console.log("arr1" + JSON.stringify(arr1)); console.log("arr1" + JSON.stringify(arr1));
console.log("result1" + JSON.stringify(result1)); console.log("result1" + JSON.stringify(result1));
```
console.log("-----------------------"); 打印结果:
```
arr1["a"]
result1["b","c","d","e","f"]
```
举例2
```javascript
var arr2 = ["a", "b", "c", "d", "e", "f"]; var arr2 = ["a", "b", "c", "d", "e", "f"];
var result2 = arr2.splice(-2); //从第一个位置开始,删除元素 var result2 = arr2.splice(-2); //删除最后两个元素
console.log("arr2" + JSON.stringify(arr2)); console.log("arr2" + JSON.stringify(arr2));
console.log("result2" + JSON.stringify(result2)); console.log("result2" + JSON.stringify(result2));
```
console.log("-----------------------"); 打印结果:
```
arr2["a","b","c","d"]
result2["e","f"]
```
举例3
```javascript
var arr3 = ["a", "b", "c", "d", "e", "f"]; var arr3 = ["a", "b", "c", "d", "e", "f"];
var result3 = arr3.splice(1, 3); //从第index为1的位置开始删除元素,一共删除三个元素 var result3 = arr3.splice(1, 3); //从第index为1的位置开始删除元素,一共删除三个元素
console.log("arr3" + JSON.stringify(arr3)); console.log("arr3" + JSON.stringify(arr3));
console.log("result3" + JSON.stringify(result3)); console.log("result3" + JSON.stringify(result3));
console.log("-----------------------");
``` ```
打印结果: 打印结果:
```javascript ```
arr1["a"] arr3["a","e","f"]
result1["b","c","d","e","f"] result3["b","c","d"]
-----------------------
arr2["a","b","c","d"]
result2["e","f"]
-----------------------
arr3["a","e","f"]
result3["b","c","d"]
-----------------------
``` ```
举例2我们来看看**第三个参数**的用法)
举例4我们来看看**第三个参数**的用法)
```javascript ```javascript
var arr4 = ["a", "b", "c", "d", "e", "f"]; var arr4 = ["a", "b", "c", "d", "e", "f"];
@ -509,7 +516,6 @@ result =["f","e","d","c","b","a"]
result =[1,2,3,4,5,11] result =[1,2,3,4,5,11]
``` ```
## 数组的遍历 ## 数组的遍历
遍历数组即:获取并操作数组中的每一个元素。在我们的实战开发中,使用得非常频繁。 遍历数组即:获取并操作数组中的每一个元素。在我们的实战开发中,使用得非常频繁。
@ -642,15 +648,8 @@ obj:王一,王二,王三
map的应用场景主要就是以上两种。 map的应用场景主要就是以上两种。
### filter() ### filter()
语法:
```javascript
arr1.filter(function(item, index){})
```
解释对数组中每一项运行回调函数该函数返回结果是true的项将组成新的数组返回值就是这个新的数组 解释对数组中每一项运行回调函数该函数返回结果是true的项将组成新的数组返回值就是这个新的数组
**举例1**:找出数组 arr1 中大于4的元素返回一个新的数组。代码如下 **举例1**:找出数组 arr1 中大于4的元素返回一个新的数组。代码如下
@ -699,7 +698,6 @@ map的应用场景主要就是以上两种。
console.log(JSON.stringify(arr2)); console.log(JSON.stringify(arr2));
``` ```
打印结果: 打印结果:
```javascript ```javascript
@ -709,7 +707,7 @@ map的应用场景主要就是以上两种。
### every()方法 ### every()方法
解释对数组中每一项运行回调函数如果都返回trueevery就返回true如果有一项返回false则停止遍历此方法返回false。 `every()`对数组中每一项运行回调函数如果都返回trueevery就返回true如果有一项返回false则停止遍历此方法返回false。
注意every()方法的返回值是boolean值参数是回调函数。 注意every()方法的返回值是boolean值参数是回调函数。
@ -737,8 +735,9 @@ map的应用场景主要就是以上两种。
### some()方法 ### some()方法
解释对数组中每一项运行回调函数只要有一项返回true则停止遍历此方法返回true。 `some()`对数组中每一项运行回调函数只要有一项返回true则停止遍历此方法返回true。
注意every()方法的返回值是boolean值
## 数组的其他方法 ## 数组的其他方法
@ -802,6 +801,8 @@ map的应用场景主要就是以上两种。
**作用**:找出**第一个**满足「指定条件返回true」的元素。 **作用**:找出**第一个**满足「指定条件返回true」的元素。
备注:一旦找到符合条件的第一个元素,将不再继续往下遍历。
举例: 举例:
```javascript ```javascript
@ -1119,7 +1120,6 @@ array = Array.from(arrayLike)
} }
``` ```
## 我的公众号 ## 我的公众号
想学习<font color=#0000ff>**代码之外的技能**</font>?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。 想学习<font color=#0000ff>**代码之外的技能**</font>?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
@ -1129,10 +1129,3 @@ array = Array.from(arrayLike)
![](http://img.smyhvae.com/20190101.png) ![](http://img.smyhvae.com/20190101.png)

View File

@ -173,7 +173,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
Object.assign(目标对象, 源对象1, 源对象2...) Object.assign(目标对象, 源对象1, 源对象2...)
``` ```
**作用:** 将源对象的属性复制到目标对象上 **作用:** 将源对象的属性追加到目标对象上。如果对象里属性名相同,会被覆盖
其实可以理解成:将多个对象**合并**为一个新的对象。 其实可以理解成:将多个对象**合并**为一个新的对象。