JS数组方法大全

一、在使用数组的方法之前,需要先创建数组,创建数组有以下方式:

  • 字面量方式(json方式)
    //demo1:不省略initial参数,回调函数没有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
    }, 2019)
    // 打印结果为:
    // 2019--10--0--true
    // undefined--20--1--true
    // undefined--30--2--true
    // undefined--40--3--true
    // undefined--50--4--true
    // 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined

    //demo2:省略initial参数,回调函数没有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
    })
    // 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
    // 10--20--1--true
    // undefined--30--2--true
    // undefined--40--3--true
    // undefined--50--4--true
    // 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined

    //demo3:不省略initial参数,回调函数有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
        return "hello";
    }, 2019)
    // 打印结果为:
    // 2019--10--0--true
    // hello--20--1--true
    // hello--30--2--true
    // hello--40--3--true
    // hello--50--4--true
    // 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值

    //demo4:省略initial参数,回调函数有返回值
    var arr = [10,20,30,40,50];
    arr.reduce(function(prev,now,index,self){
        console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
        return "hello";
    })
    // 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
    // 10--20--1--true
    // hello--30--2--true
    // hello--40--3--true
    // hello--50--4--true
    // 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值

    //demo5:使用reduce计算数组中所有数据的和
    var arr = [10,20,30,40,50];
    var sum = arr.reduce(function(prev,now,index,self){
        return prev + now;
    })
    console.log(sum);      //150
    // 回调函数的最后一次return的结果被返回到reduce方法的身上

    //demo6:使用reduce计算数组中所有数据的和
    var arr = [10,20,30,40,50];
    var sum = arr.reduce(function(prev,now,index,self){
        return prev + now;
    }, 8)
    console.log(sum);      //158
    // 回调函数的最后一次return的结果被返回到reduce方法的身上
    // 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8

20.reduceRight()

功能:(与reduce类似)从数组的最后一项开始,向前逐个遍历到第一位,迭代数组的所有项,然后构建一个最终返回的值。
参数:同reduce。
demo:同reduce

(0)

相关推荐

  • JavaScript数据类型

    JavaScript数据类型

  • JavaScript(1) -- JS入门

    JavaScript(1) -- JS入门

  • JavaScript--总结三(数组和函数)

    数组 数组的概念: 将多个元素(通常是同一类型)按照一定顺序排列放到一个集合中,这个集合称之为数组---简(一组有序的数据) 数组的作用:可以一次性存储多个数据 数组的定义: 1.通过构造函数创建数组 ...

  • 「学习笔记」JavaScript基础

    前言 最近一直在跟着黑马教程学习JavaScript内容,遂把这一阶段的学习内容整理成笔记,巩固所学知识,同时也会参考一些博客,书籍上的内容,查漏补缺,给自己充充电

  • 前端面试题之JavaScript

    ES6语法有哪些,分别怎么用 参考链接:http://es6.ruanyifeng.com/ new的执行过程 创建一个空对象: 将构造函数的 prototype 属性赋值给新对象的 __proto_ ...

  • js数组方法(管饱)

    有一些数组方法是ECMAScript新增的,一定要注意浏览器的兼容!!Array对象属性:属性说明constructor返回对创建此对象的函数引用length返回集合内的元素的所有长度prototyp ...

  • 绳子打结方法大全(图解)

    <渔业界>:中国渔业最大新媒体 结绳系扣是渔民的最基本技能.渔业生产中,无论是网眼的补织.断绳的对接,还是船靠码头时的系缆,都要用到绳索结.绳子扣产生于渔家的生产.生活中的需求,他们要综合 ...

  • 高考攻略| 历史选择题命题方式和解题方法大全,看到就是赚到!

    一.选择题命题特点 我们要了解高考中历史选择题的命题特点,选择题是高考历史的二大题型之一,具有灵活性高和区分度强等特点,以其材料新.情境新.史味浓而深受人们欢迎.它所引用的材料都是原始史料,源于教材又 ...

  • 【自身免疫性溶血性贫血】治疗方法大全,症状,病因,检查,预防,饮食

    一. 自身免疫性溶血性贫血的发病原因有哪些 自身免疫性溶血性贫血,简称自免溶贫.是因为机体免疫功能紊乱,产生自体抗体或(和)补体结合在红细胞膜上,从而使红细胞破坏加速而引起的一组溶血性贫血.本病根据抗 ...

  • 钩针编织立体花朵手工制作方法大全

    材料棉料羊毛(红色)Heita约5克道具钩针6/0羊毛扎针编织图符号和编织图玫瑰装饰编织图如何使婴儿发带玫瑰装饰①第一步用羊毛线编织.接下来,将线钩在钩针上并编织第一针.继续总共编织35针.我要进行长 ...

  • 最新的电视家安装方法大全,人人都可以是电视专家

    不同品牌的电视设备安装方法是不同的,你的机器是什么品牌就按照以下对应的方法来安装 ,如果电视品牌都不是以下这些 ,那就下拉本文到最后,用万能方法来安装 .

  • 洗衣机排水问题怎么修 洗衣机维修方法大全

    洗衣机维修电话:400-058-6861. 晾洗衣服是日常比较频繁的事情,有了洗衣机让我们清洗衣服不再费劲,但洗衣机出现故障就比较麻烦,洗衣机故障包含洗衣机不排水.边进水边排水.进水不止.不脱水.脱水 ...

  • 各种除草剂使用方法大全!绝对经典,绝对有用

    一.磺酰脲类(噻磺隆.绿磺隆.烟嘧磺隆等) 1.活性高,每公顷以克计. 2.杀草谱广,不同品种除草谱差别大. 3.选择性强,对作物安全度高,对杂草高效. 4.使用方便,可被杂草的根.茎.叶吸收,也可以 ...

  • 高考攻略| 选择题命题方式和解题方法大全,看到就是赚到!

    相关链接:一口气读完高中历史必修1 一口气读完高中历史必修2 一口气读完高中历史必修3 一.选择题命题特点 我们要了解高考中历史选择题的命题特点,选择题是高考历史的二大题型之一,具有灵活性高和区分度强 ...