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