ES6数组新增的几个方法:

1. forEach()

//forEach()遍历数组,无返回值,不改变原数组
var arr=[1,2,3,4]
arr.forEach((item,index,arr)=>{
console.log(item); //1,2,3,4
})

2. map()

//map()遍历一个数组,返回新数组,不改变原数组的值
var arr=[1,2,3,4]
arr.map((item,index,arr)=>{
return item*10; //返回新数组10,20,30,40
})

3. filter()

//过滤数组中不满足条件的值,返回一个新数组,不改变原数组的值
var arr=[1,2,3,4]
arr.filter((item,index,arr)=>{
return item>2; //新数组为[3,4]
})

4. reduce()

//reduce让数组的前后两项进行某种计算,然后返回其值,并继续计算。不改变原数组,返回计算的最终结果,从数组的第二项开始遍历。
var arr=[1,2,3,4]
arr.reduce((result,item,index,arr)=>{
console.log(result); // 1 3 6 result为上次一计算的结果
console.log(item); // 2 3 4
console.log(index); // 1 2 3
return result+item; //
})

5.some()

//遍历数组每一项,有一项返回true,则停止遍历,结果返回true。不改变原数组
var arr=[]
arr.some((item,index,arr)=>{
return item>3; //结果为true
})

6. every()

//遍历数组每一项,每一项返回true,则最终结果为true。当任何一项返回false时,停止遍历,返回false。不改变原数组
var arr = [1,2,3,4];
arr.every((item,index,arr) => {
return item > 1 //结果为false
})

ES6数组去重

1.方法一

function unique(arr){
//定义常量res,值为一个map对象实例
const res=new map();
//返回arr数组过滤后的结果,结果为一个数组
//过滤条件是,如果res中没有某个键,就设置这个值的键为1
return arr.filter((a) =>!res.has(a)&& res.set(a,1))
}

2. 方法二

//Array.from() 方法从一个类似数组或可迭代的对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等) 中创建一个新的数组实例
function unique(){
return Array.from(new Set(arr));
}

ES6数组相关的更多相关文章

  1. ES6数组新加 Buff

    欢迎关注本人公众号<迈向大前端>,里面有15本前端相关的电子书,送给在前端路上迷茫的同学们! 本章篇幅很长,分开来发,这一小篇主要讲ES6数组的Array.of()和Array.from( ...

  2. TSPL学习笔记(4):数组相关练习

    最近研究函数式编程,都是haskell和scheme交互着看的,所以笔记中两种语言的内容都有,练习一般也都用两种语言分别实现. 本篇练习一些数组有关的问题,之所以与数组相关是因为在命令式编程中以下问题 ...

  3. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

  4. ES6数组扩展

    前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...

  5. ES6数组及数组方法

    ES6数组可以支持下面的几种写法: (1)var [a,b,c] = [1,2,3]; (2)var [a,[[b],c]] = [1,[[2],3]]; (3)let [x,,y] = [1,2,3 ...

  6. 数组的复制及ES6数组的扩展

    一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...

  7. es6数组的扩展

    数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...

  8. ES6 数组方法拓展

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

  9. Scala学习(三)----数组相关操作

    数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...

随机推荐

  1. django Proxy models ---- 代理模式

    一个proxy models 不会在数据库中创建新的表.而是与它的基类共用同一个表 1.model 的定义: from django.db import models # Create your mo ...

  2. centos x64 vsftpd 530登陆错误问题

    近来在centos 6.0 x64版本下安装vsftpd,中间出现一些问题,解决过程总结如下: 安装vsftpd:yum install vsftpd 安装后配置为虚拟用户登陆,然后用:ftp loc ...

  3. 使用Secure Boot后,导致VMware无法启动虚拟机

    最初安装vmware时就报错  Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk- ...

  4. CentOS6.2 下安装OpenGL开发库

    在Linux下做Qt开发,结果运行程序的时候提示找不到GL/gl.h文件,所以只能先把OpenGL库安装上去,不知道这样操作对不对,以后再考虑吧,下面开始安装 1.查看mesa相关的包 yum lis ...

  5. 解决eclipse启动tomcat报错:Could not load the Tomcat server configuration at \Servers\Tomcat v6.0 Server at localhost-config. The Servers project is closed.

    报错信息已经说的很清楚了:The Servers project is closed.如图 打开即可: 另外,如果你修改了Servers project的name(比如说把这里的Servers改成了X ...

  6. js代码中定义后台java中的上下文路径

    var href = <c:out value='${sessionScope.contextPath}' />

  7. UCOS2系统内核讲述(五)_初始化TCB详情

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2系统内核讲述(四)_创建任务 上一篇文章讲述了关于函数“OSTaskCreateExt”创建任务函数体里面重要一些的内容,本文接着上一张讲述 ...

  8. 个别图片IE中无法显示问题

    今天有人保障,某些图片在IE下无法打开,但是其他浏览器均没有问题.以前还真没遇到过这类问题,从上至下查看了一遍,能排除的因素基本都排除了,还是不知道为什么不能显示,真是奇怪了.最后注意到无法显示的图片 ...

  9. 从文件/文件流的头字节中得到mime信息

    在写网络爬虫的时候,需要根据链接来获取文件类型,将内容正确存储.之前我都是根据链接的后缀来判断的,比如: http://img12.360buyimg.com/da/20120330/88_31_Zy ...

  10. I2C和SPI

    I2C(Inter-Integrated Circuit)总线 两线式串行总线,用于连接微控制器及其外围设备.是微电子通信控制领域广泛采用的一种总线标准.它是同步通信的一种特殊形式,具有接口线少,控制 ...