ES6

    xiaoxiao2023-11-06  156

    目录

    一、Array.from()方法复制数组 ES6方法

    二、Array.of()的用法   把传入一组参数,返回一个数组;

    三、es5里面的数组的循环方法

    arr.map(参数1,参数2)方法,参数用法同上  非常有用,做数据交互映射

    arr.filter():过滤,过滤一些不合格元素,使用return返回 

    arr.some()  判断是否有某个元素(又一个符合条件),有即返回true,没有返回false;

    arr.every() 判断每一个,又一个不满足条件即返回false ,否则返回true;

    四、ES6新增的方法

    arr.reduce((prev,cur,index,arr)=>{})   从左往右

    arr.reduceRight()  从右往左

    Math.pow(a,b)  计算a的b次方;

    ES6新写法  a**b  计算a的b次方;

    for...of循环

    for...in循环

    五、arr.find()方法 找到数组里面是否有满足某个条件的第一个值,并返回,没有找到则返回undefined;

    六、arr.findIndex() 方法,找到数组里面是否有满足某个条件的值的下标,没有即返回-1;

    七、arr.fill() 数组填充

    八、arr.includes()判断是否包含,返回布尔值;类似arr.indexOf();


    一、Array.from()方法复制数组 ES6方法

    作用:把类数组转成数组  es6扩展运算符(...)也有次作用;

    ES6以前把伪数组转数组的方法:

    let arr=document.querySelectorAll("ul li"); let arrLi=[].slice.call(arr);//把类数组转数组; let json={//伪数组 只要具备length属性 0:'apple', 1:'bnana', 2:'orange', length:3 }; console.log(Array.from(json));//把伪数组转数组

     

    let a=[1,2,3]; let b=Array.from(a); console.log(b); a[1]=0; console.log(b);

    二、Array.of()的用法   把传入一组参数,返回一个数组;

    console.log(Array.of('a','b','c','d'));//["a", "b", "c", "d"]

     

    三、es5里面的数组的循环方法

    arr.forEach(参数1,参数2)方法,代替普通的for循环;

    参数1:表示要执行的回调方法;参数2:表示this 指向;也可以写成 参数1.bind(指向的this对象) let arr=[1,2,3,4,5,6]; let obj={}; arr.forEach(function(val,index,arr){ console.log(this,val,index,arr); },obj);

    arr.map(参数1,参数2)方法,参数用法同上  非常有用,做数据交互映射

    不同的是:

    正常情况下,需要配合return,返回一个新数组;若是没有return,相当于forEach方法;注意:使用此方法,一般都用return返回;重新整理数据结构 let arr=[ {title:'a1',age:'b1',hot:'c1'}, {title:'a2',age:'b2',hot:'c2'}, {title:'a3',age:'b3',hot:'c3'}, {title:'a4',age:'b4',hot:'c4'}, ]; let arr1=arr.map((val,index,arr)=>{ let obj={}; obj.t=`${val.title}''''`; obj.a=`22222${val.age}`; obj.h=`3333${val.hot}`; return obj; }); console.log(arr1);

    arr.filter():过滤,过滤一些不合格元素,使用return返回 

    let arr=[ {title:'a1',age:'b1',hot:false}, {title:'a2',age:'b2',hot:true}, {title:'a3',age:'b3',hot:false}, {title:'a4',age:'b4',hot:true}, ]; let arr2=arr.filter((val,index,arr)=>{ return val.hot;//为true即返回 }) console.log(arr2)

    arr.some()  判断是否有某个元素(又一个符合条件),有即返回true,没有返回false;

    let arr=[ {title:'a1',age:'b1',hot:false}, {title:'a2',age:'b2',hot:true}, {title:'a3',age:'b1',hot:false}, {title:'a4',age:'b4',hot:true}, ]; let bool=arr.some((val,index,arr)=>{ return val.age=='b1';//为true即返回一个布尔值 }); console.log(bool);

    arr.every() 判断每一个,又一个不满足条件即返回false ,否则返回true;

    四、ES6新增的方法

    arr.reduce((prev,cur,index,arr)=>{})   从左往右

    let arr=[]; for(let i=1;i<=100;i++){ arr[i]=i; } let num=arr.reduce((prev,cur,index,arr)=>{ console.log(prev,cur,index,arr); return prev+cur; }) console.log(num);//5050

    arr.reduceRight()  从右往左

    Math.pow(a,b)  计算a的b次方;

    ES6新写法  a**b  计算a的b次方;

    for...of循环

    arr.keys();arr.values();arr.entries(); let arr=['apple','bnane','orange','tea']; for(let item of arr){//此时arr默认为arr.values() console.log(item);//数组里面的每一项值 } for(let index of arr.keys()){ console.log(index);//数组里面的每一项的下标 } for(let item of arr.entries()){ console.log(item);//数组里面每一项的下标和值(对象) } for(let [index,item] of arr.entries()){ console.log(index,item);//数组里面每一项的下标和值 }

    for...in循环

     

    五、arr.find()方法 找到数组里面是否有满足某个条件的第一个值,并返回,没有找到则返回undefined;

    let arr=[11,21,31,41,51,61,71,81]; let res=arr.find((val,index,arr)=>{//返回第一个满足条件的值,没有找到即返回undefined return val>4; }) console.log(res);

    六、arr.findIndex() 方法,找到数组里面是否有满足某个条件的值的下标,没有即返回-1;

    七、arr.fill() 数组填充

    arr.fill('被填充值');

    arr.fill('被填充值','起始填充位置','结束位置')

    八、arr.includes()判断是否包含,返回布尔值;类似arr.indexOf();

    最新回复(0)