zoukankan      html  css  js  c++  java
  • 一些ES5的操作数组的方法

    在ES5规范中新增了不少操作数组的方法,特此罗列一下以备使用

    1. forEach循环

    有点类似jQuery的each循环

    [12,23,36,4,5].forEach(function(v,k){

    console.log(v)   得到元素值,    12,23,36,4,5

    console.log(k)   得到元素下标 ,0,1,2,3,4

    })

    方便在不借助三方库的情况下遍历各类数组

    2.filter过滤器

    用于筛选元素

    var arr = [12,23,36,4,5].filter(function(x){

    return   x>10;    此时大于10的元素会通过筛选并存放到一个新的数组,函数结束后返回该数组

    });

    console.log(arr)   得到[12,23,36]

    3.every匹配

    和上面filter的格式相似,但是返回的是一个bool值

    如果数组内所有元素均通过筛选,则返回true,否则返回false

    4.some匹配

    和every匹配相对,只要有一个元素通过了筛选就返回true,一个都没就返回false

    5.reduce组合

    组合数组内的元素,进行相关操作

    例如,数组求和

    var sum = [12,23,36,4,5].reduce(function(x,y){

    return x+y;

    },0);

    最终sum得到数组内的总和

    主要接收一个函数来return 相应的组合操作,然后可以设置返回值的初始值,此处sum初始值为0

    再来两个例子更加有助于理解

    数组求积

    var ji = [12,23,36,4,5].reduce(function(x,y){

    return x*y;

    },1);

    显然求积,默认初始值就是1而不是0了

    求最大值

    var max = [12,23,36,4,5].reduce(function(x,y){

    return (x>y)?x:y;

    });

    求最大值不需要初始值,返回的是经过两两比较后得到的最大值

    6.reduceRight

    和reduce用法基本一致,不同点在于所有操作都是从右向左进行,在某些确定优先级的情况下会有不同

  • 相关阅读:
    我决定重新开始搞机器学习啦
    基于问句实体扩展和全局规划的答案摘要方法研究相关论文
    cjson源代码解读(三) 解析字符串、数字、数组、对象
    论文阅读:DeepWalk
    cjson源代码解读 (二)解析流程
    cjson源代码解读 (一)介绍
    DDoS攻击的几种类型
    Nmap扫描二级目录
    一次域环境的渗透
    利用enum4linux 445端口+wordpress插件任意文件上传的一次渗透
  • 原文地址:https://www.cnblogs.com/raoyunxiao/p/4827784.html
Copyright © 2011-2022 走看看