es6 数组的拓展

  数组的类 Array

  数组的定义:

    1. var arr=[];

    2. var arr=new Array(3)  // 3 代表有三个元素

      arr[0]=12;

      arr[1]=24;

      arr[2]=36;

    3. var arr=new Array("zhang","lisi","wang");

  [] 代表空数组  [empty] 代表一个空元素

    var arr=new Array("4");

    代表有一个元素 为 4

  var arr=new Array(3) 与 var arr=new Array("3") 的区别?

  第一个的 3 代表,这个数组中有 3 个元素, 第二个的 3 代表,这个数组中有一个元素,为3

  数组的方法:

  1. of()   他是 Array 类上的方法

    var arr=Array.of(4);

    console.log(arr) // [4] 返回一个数组,里面有一个元素为 4

  2. forEach()  他是原型的方法,用于对数组的遍历,返回值 undefined

    案例:

    var arr=[12,23,56,96,105];

    var as = arr.forEach((item,index)=>{

       // item  代表元素  index 代表索引

       console.log(item)

      console.log(index)

    })

    console.log(as) // undefined

  3. map 原型上的方法,用于数组遍历加工,  返回值:仍然是个新数组,  参数:回调函数  

    var arr=[12,36,85,96,102];

    var as = arr.map((item,index)=>{

      return item+3;  // 此方法一定要 return             

    })

  4. filter 过滤  从数组中找出所有的指定条件的元素,并返回成一个新的数组,不改变原有数组   return 返回值是 true 就保留,返回值是 false 就不保留

    var arr=[

      {name:"zhang",age:20},

      {name:"lisi",age:10}

    ];

    var as=arr.filter((item,index)=>{

      // item 元素  index 索引

      return item.age>15;    // 条件语句的返回值 true 和 false

    })

    console.log(as)  // 返回满足条件的 {name:"zhang",age:20};

  5. find:查找,查找第一个满足条件的元素  参数:回调函数  返回值:第一个满足条件的元素

    var arr=[

      {name:"zhang",age:20},

      {name:"lisi",age:30},

      {name:"wang",age:15}

    ]

    var as=arr.find((item,index)=>{

      // item 元素  index 索引

      return item.age>18;  

    })

    console.log(as)  // 他的返回结果就只有一个,(对数组中逐个查找,当返回值为 true,说明找到,直接将结果返回,不在继续查找)

  6. every:看数组中的每个是元素是否都满足条件  参数:回调函数  返回值:布尔

    var arr=[

      {name:"zhang",age:20},

      {name:"lisi",age:10}

    ]

    var as=arr.every((item,index)=>{

      // item 元素  index 索引

      return item.age>5;

    })

    console.log(as)  // true   这种结果返回的 true,因为它的所有元素都满足这个条件,但是只要有一个不满足,返回值为 false

  7. some: 看数组中的元素是否都满足条件,只要有一个满足,返回值是 true ,全部都不满足这个条件,返回值为false   参数:回调函数

    var arr=[

      {name:"zhang",age:20},

      {name:"lisi",age:10}

    ]

    var as=arr.some((item,index)=>{

      // item 元素  index 索引

      return item.age>30;

    })

    console.log(as)  // false   所有的元素都不满足他的条件,返回 false,但只要有一个满足,返回 true

  8. reduce:迭代,在原有的基础上继续

    var arr=[1,2,3,4,5,6,7,8,9,10];

    var as=arr.requce((prev,item,index)=>{

      //  prev  代表上一个的返回值(return 的返回值,就好比 item = 3 的时候,prev 代表上次返回的结果,return 1+2)

        //  item 数组的元素,如果遍历的话,默认从第二个元素开始, index 数组的索引

      return prev+item  // return 的结果

    },0)  // 这个0 代表第一个返回的结果,最终目的是让 item 从第一个元素开始

    上面的代码翻译为 var as=1+2+3+4+5+6+7+8+9+10

    console.log(as)  // 55

   注意:

    1. 默认从第二个元素开始执行,第一个元素没有上一个

    2. 第一次执行返回的是第一个元素,reduce 的参数 是一个回调函数,回调函数中有三个参数,第一个叫 prev 代表上一次 reduce 执行的返回值就,第二个叫 item 代表返回的元素

     第三个叫 index 返回的是当前的索引

    3. 如果想让 reduce 从第一个元素开始执行,(默认从第二个),回调函数后面的参数,就是第一次执行的 prev

  1. 面试题

    将一个数组转换成对象,属性是数组的元素,属性值是元素的个数

    解答;

      var arr=["item","tom",,"jack","item","jack"];
      var as=arr.reduce((prev,item)=>{
        if(item in prev){
          prev[item]++
        }
        else{
          prev[item]=1;
        }
        return prev
      },{})
      console.log(as);  // {tom:2,item:1,jack:2}

es6 的数组的方法的更多相关文章

  1. ES6之数组扩展方法【一】(相当好用)

    form 转化为真正的数组 先说一下使用场景,在Js中,我们要经常操作DOM,比如获取全部页面的input标签,并且找到类型为button的元素,然后给这个按钮注册一个点击事件,我们可能会这样操作: ...

  2. es6 filter() 数组过滤方法总结

    1.创建一个数组,判断数组中是否存在某个值 var newarr = [ { num: , val: 'ceshi', flag: 'aa' }, { num: , val: 'ceshi2', fl ...

  3. es6 filter() 数组过滤方法总结(转载)

    1.创建一个数组,判断数组中是否存在某个值 var newarr = [ { num: 1, val: 'ceshi', flag: 'aa' }, { num: 2, val: 'ceshi2', ...

  4. 关于ES6的数组字符串方法

    注:ES6的一些新属性会显示语法错误,不过不会影响效果,在Languages里面也可以调: let:用来定义变量 特点:只能在代码块里面使用,let拥有块级作用域;并且let不允许重复声明;比如: v ...

  5. es6数组的方法

    1.复习的函数 函数是由关键字function声明的,他是一个引用数据类型,是Function的实例,在调用的时候会开辟一个私有空间 2.函数的成员 arguments:null  (是实参构成的数组 ...

  6. ES6使用的一些方法

    查找数组中符合条件的所有记录 var list=[ {id:1,name:"张三"}, {id:2,name:"李四"}, {id:3,name:"王 ...

  7. 前端面试之JavaScript中数组的方法!【残缺版!!】

    前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...

  8. 关于ES3、ES5、ES6以及ES7所有数组的方法(api)的总结

    起因:工作用经常用到操作数组的方法,这里进行一下总结,我尽量以简洁的语言概括每个方法(api)的作用.如果您想快速定位,可以Control+F 然后搜相应的方法即可定位 :) ES3的数组方法 joi ...

  9. ES6中数组的新方法

    数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. <body> < ...

随机推荐

  1. pgsql sql字段拼接

    1.  一条记录数据字段拼接 语法:concat_ws('拼接符号',字段名,more fields) 例子:concat_ws(':',username,sex)2. 多条记录字段拼接 语法:con ...

  2. 免费FQ工具

    这里使用免费的`梯子` 下载赛风 选择Windows下载 下载好之后,直接点击打开,它会自动连接,什么也不要设置,下载的就是一个exe文件,连接成功会打开一个网页,不用管

  3. 【异常】org.apache.hadoop.hdfs.server.common.InconsistentFSStateException

    1 异常信息 - ::, INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Maximum size of an xattr: -- ...

  4. sklearn学习小结

    机器学习的一般流程: 1.获取数据 2.数据预处理 3.数据集分拆 4.搭建模型 5.模型评估 6.模型保存 7.模型优化 接下来,以Sklearn为例,一一介绍. 1.获取数据 1.1.导入数据集: ...

  5. 查看jar包依赖树

    在eclipse执行如下命令: 可以在控制台上查看层级依赖关系

  6. date( ) 日期函数

    date('Y-m-dT2:00')    实际时间为14:00 date('Y-m-d 2:00')     实际时间为2:00 扩展:每天的时间戳秒数为 86400

  7. 【TJOI 2019】唱、跳、rap和篮球

    题意 有 $a$ 个 $0$,$b$ 个 $1$,$c$ 个 $2$,$d$ 个 $3$,求有多少种长度为 $n$ 且不包含 $0123$ 这个子串的字符串个数. $n\le 1000,\space ...

  8. 关于css阴影和浮动

    盒子阴影box-shadow box-shadow:0 0 1px #000 inset; 水平  垂直   模糊  颜色 : [1] inset代表框内阴影,不加inset代表框外阴影 [2]第1个 ...

  9. shell变量、函数和数组以及字符串的截取

    一.变量 1.shell变量名 (1)可以由字母.数字.下划线等字符组成.但是第一个字符必须是字母或者下划线. (2)若果变量中包含下划线(_)则要特别注意,$project_svn_$date.ta ...

  10. 2019春Python程序设计练习4(4.9-4.15)

    1-1 如下代码可以实现当输入6的时候输出x>5,输入4的时候输出 3<x<=5,输入1的时候输出x<=3 x = int(input()) if x>5: print( ...