数组的扩展

数组的拓展方法返回的都是一个新函数

forEach方法

之前的遍历都是for(var i = 0; i < 100; i++)样式的,ES6提供了forEach数组遍历

参数一共有两个,第一个item表示的是对应的数组的每一项值,index表示对应值的下标

map方法

map方法表示的是映射,返回的是一个全新的数组,新数组的每一项都是原数组的映射

比如我们要让下面的数组每一项值都乘以2

var arr = [1,2,3,4,5,6]

 

 filter方法

filter方法,过滤旧的数组,返回新的数组集合

比如我们想让下面的数组过滤掉奇数
var arr = [1,2,3,4,5]

 

 filter中的参数是函数,这个return为true的值会返回的到新的数组中

再比如我们顾虑JSON内容,返回年龄大于等于20的

 

 reduce方法

reduce方法表示迭代遍历,每一项遍历都可以使用上一项遍历时候的结果

reduce函数里面有两个参数,我们用a,b去表示,输出一下a,b分别是什么意思

 

 

上图中红色线的表示a的结果,蓝色线的表示b的结果

a除了第一项之外都是undefined,是因为a取决于上一次的计算结果,所以除了初始化的第一次知道自己是谁,剩下的都需要计算返回结果,b就是依次从第二项开始遍历的结果

此时我们可以看一下a的返回

 

 字符串的相加就是拼接,所以我们看a的最后返回

 reduce的机理:a表示遍历前一项的时候return 的值,b表示当前这一项的值。系统会自动从下标为1的开始遍历,遍历下标为1项的时候,a的值是第0项,最后一项的return,就是最后结果的返回

案例:求数组元素的和

 

 数组的最大值

 

 

includes方法 

includes方法返回一个布尔值,表示某个数组是否包含了某一个值。用法与indexOf方法一样

 

 find方法 

find方法的作用就是对数组的查找,查找的结果是找到符合的第一项为止,后面即便有多项符合也不找了

 

 findIndex方法

findIndex方法的用法与find方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

 

Array.from方法

Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象

    let arrayLike = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        length: 3
    };
    var arr1 = [].slice.call(arrayLike);   //es5写法
    var arr = Array.from(arrayLike)      //es6写法
    console.log(arr1)
    console.log(arr)

函数的arguments

 

 

 

 Array.of方法

Array.of方法用于把一组值,转换为数组。

posted @ 2021-10-24 14:04  keyeking  阅读(43)  评论(0编辑  收藏  举报