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

作者:jingxian 时间:2024-10-26 13:01:12 

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,数组,新增,方法,对象
0
投稿

猜你喜欢

  • PHP中的闭包function() use() {}使用场景和技巧

    2023-06-09 21:54:07
  • 使用 Python 实现微信群友统计器的思路详解

    2022-02-04 23:38:08
  • go 实现简易端口扫描的示例

    2024-04-27 15:39:13
  • Python使用scapy模块发包收包

    2021-04-26 16:32:12
  • Python CSV模块使用实例

    2022-02-04 18:56:36
  • PHP版微信小店接口开发实例

    2023-11-10 11:56:06
  • 解决使用python print打印函数返回值多一个None的问题

    2021-08-22 07:52:09
  • 对Matlab中共轭、转置和共轭装置的区别说明

    2023-12-23 00:47:22
  • 解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    2022-05-22 21:51:51
  • Javascript实现单选框效果

    2024-04-23 09:06:42
  • Python轮播图与导航栏功能的实现流程全讲解

    2021-08-08 22:46:32
  • OpenCV哈里斯角检测|Harris Corner理论实践

    2021-03-22 02:06:10
  • Python开发实例分享bt种子爬虫程序和种子解析

    2021-04-03 17:55:29
  • Python生成九宫格图片的示例代码

    2023-03-16 20:29:38
  • pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

    2023-08-12 07:44:34
  • 超全面的JavaScript开发规范(推荐)

    2024-04-18 10:52:37
  • python内置函数sorted()用法深入分析

    2022-06-26 07:41:40
  • MySQL数据库同时查询更新同一张表的方法

    2024-01-22 23:10:38
  • 详解在Python中以绝对路径或者相对路径导入文件的方法

    2021-10-09 19:37:24
  • Python依赖管理及打包工具Poetry使用规范

    2021-06-02 13:21:43
  • asp之家 网络编程 m.aspxhome.com