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 }
返回一个新的数组,es5要复制一个新的数组咱们通常用循环,如今直接用mapes6
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
过滤,返回为真的值,数组
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]
每一个参数的意思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
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 {}
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)//输出键值对 }
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())//删除全部键值对