时间:2021-05-18
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)//输出false2. 数组.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:cures6提供的一种新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值(包括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"))//输出trueconsole.log(map.clear())//删除所有键值对以上这篇浅谈ES6新增的数组方法和对象就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文主要讲解ES6数组方法find()与findIndex(),关于JS的更多数组方法,可参考以下:①JavaScript内置对象之-Array②ES5新增数组
ES6新的数组方法、集合、for-of循环、展开运算符(...)甚至异步编程都依赖于迭代器(Iterator)实现。本文会详解ES6的迭代器与生成器,并进一步挖
本文实例讲述了ES6数组与对象的解构赋值。分享给大家供大家参考,具体如下:数组的解构赋值基本用法ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,
本文实例讲述了es6中class类静态方法,静态属性,实例属性,实例方法。分享给大家供大家参考,具体如下:es6新增了一种定义对象实例的方法,使用class关键
前言初衷:在面试中,面试官经常问到说一下Es5和Es6的数组方法有哪些,有很多同学老是分不清楚,今天笔者就来分享一下。适合人群:前端初级开发Es5系列index