浅谈ES6新增的数组方法和对象


Posted in Javascript onAugust 08, 2017

es6新增的遍历数组的方法,后面都会用这个方法来遍历数组,或者对象,还有set,map

let arr=[1,2,3,4,3,2,1,2];

遍历数组最简洁直接的方法

for (let value of arr) {
  console.log(value);//输出1,2,3,4,3,2,1,2
}

1. 数组.map()

返回一个新的数组,es5要复制一个新的数组我们一般用循环,现在直接用map

let arr=[1,2,3,4,3,2,1,2];
let newArr=arr.map((value,index,arr)=>value)
console.log(newArr)//输出[1,2,3,4],当然里面也可以返回下标的数组
console.log(newArr==arr)//输出false

2. 数组.filter()

过滤,返回为真的值,

let arr=[1,2,3,4,3,2,1,2];
let newArr1=arr.filter((value,index,arr)=>value>=3)
console.log(newArr1);//输出[3,4,3]

3. 数组.reduce()

每个参数的意思previousValue上次回调的返回值或者初始值,currentValue正在处理的数组值,currentIndex正在处理函数的下标

//以前找最大值,最小值我们是用的2层循环来找的,现在直接一行代码搞定,是不是很爽
let arr=[1,2,3,4,3,2,1,2];
let newArr2=arr.reduce((pre,cur,curIndex,arr)=>pre>cur?pre:cur)
//pre=1不大于cur=2,返回2;
//pre接收返回值2;pre=2不大于cur=3,返回3
.....
//一直找到4并且返回4;
//pre接收4,pre=4大于pre=3然后就一直返回的都是4,这样就会找到最大值

console.log(newArr2)//输出4,找到最大值,如果想找最小值只需要pre<cur?pre:cur

es6提供的一种新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值(包括NaN),但是set内部对象是不相等的

Set不是数组,自然就没有length属性,它有size属性,set.size,就是返回它的成员数量;

let set=new Set([1,2,3,4,3,2,1]);//这里必须传入的是数组
console.log(set)//输出set {1,2,3,4}
console.log(set.add(2))//依然输出set {1,2,3,4}
console.log(set.add(5))//输出 set {1,2,3,4,5}
console.log(set.delete(1))//输出true,表示删除成功
console.log(set.has(2))//输出true,表示存在这个值
console.log(set.clear())//输出undefined,这个方法知识删除所有值,并没有返回值
console.log(set)//这时候set已经清空了,所以输出为 set {}

Array.from()方法从一个类似数组或可以迭代的对象中创建一个新的数组实例

let set=new Set([1,2,3,4,3,2,1]);
console.log(Array.from(set))//用这个方法就可以把set对象转换我数组,输出为[1,2,3,4,3,2,1]
console.log(Array.from('hello'))//输出为['h','e','l','l','o']

利用set 和 from达到数组去重

let arr1=[1,2,2,1,1,3,5,2]
console.log(Array.from(new Set(arr1)))//输出[1,2,3,5],以后别人问你怎么数组去重,你可以装下逼了

写到这里突然想到es6的...方法

console.log([...new Set(arr1)])

Set的遍历方法

for (let value of set.keys()) {
console.log(value)//输出键
}
for (let value of set.values()) {
console.log(value)//输出值
}
for (let value of set.entries()) {
console.log(value)//输出键值对
}

es6提供了Map数据结构,它类似于对象,也是键值对的集合,但是它的强大在于键的范围可以任何类型的数据;

let map=new Map([["name","张三"],[[1,2,3],18],[{},"男"]])
console.log(map)
console.log(map.set("name","李四"))//输出 Map { 'name' => '张三', [ 1, 2, 3 ] => 18, {} => '男' }如果没有这个键,就会添加新的键值对到后面
console.log(map.get("name"))//输出李四
console.log(map.delete("name"))//输出true
console.log(map.clear())//删除所有键值对

以上这篇浅谈ES6新增的数组方法和对象就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
ParseInt函数参数设置介绍
Jan 02 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
javascript 中的继承实例详解
May 05 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
Javascript Dom元素获取和添加详解
Sep 24 Javascript
vue.js 解决v-model让select默认选中不生效的问题
Jul 28 Javascript
详解vue3.0 的 Composition API 的一种使用方法
Oct 26 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 #Javascript
详解Vue的computed(计算属性)使用实例之TodoList
Aug 07 #Javascript
详解express与koa中间件模式对比
Aug 07 #Javascript
JS实现简单短信验证码界面
Aug 07 #Javascript
ReactNative Image组件使用详解
Aug 07 #Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 #Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 #Javascript
You might like
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python定时器使用示例分享
2014/02/16 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python中turtle作图示例
2017/11/15 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
Numpy之文件存取的示例代码
2018/08/03 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
学校爱心捐款倡议书
2014/05/13 职场文书
成人成长感言如何写?
2019/08/16 职场文书
MySQL笔记 —SQL运算符
2022/01/18 MySQL