当前位置: 首页 > Web前端 > HTML

前端reduce

时间:2023-03-28 11:04:10 HTML

1.返回指定键值对函数getkeys(obj={},keys=[]){returnObject.keys(obj).reduce((t,v)=>(keys.includes(v)&&(t[v]=obj[v]),t),{})}==>functiongetkeys(obj={},keys=[]){returnObject.keys(obj).reduce((t,v)=>{if(keys.includes(v)){t[v]=obj[v]}returnt;},{})}consttarget={a:1,b:2,c:3};const关键字=["a","b"];console.log(getkeys(target,keyword));//{a:1,b:2}2。累加乘法functionAccu(...vals){returnvals.reduce((t,v)=>t+v,0)}functionMccu(...vals){returnvals.reduce((t,v)=>t*v,1)}consta=Accu(1,2,3,4,5);//15constb=Mccu(1,2,3,4,5);//1203。weightsumconstscores=[{score:90,name:"中文",weight:0.5},{score:95,name:"数学",weight:0.3}];constresult=scores.reduce((t,v)=>{returnt+v.score*v.weight},0);控制台日志(结果);//90.54。数组展平函数flat(arr=[]){returnarr.reduce((t,v)=>t.connat(Array.isArray(v)?flat(v):v),[])};constarr=[0,1,[2,3],4,[5,[6,7]]];console.log(flat(arr));//[0,1,2,3,4,5,6,7]5.统计数组成员个数函数计数(arr=[]){returnarr.reduce((t,v)=>(t[v]=(t[v]||0)+1,t),{})};constarr=[0,1,1,2,2,2];console.log(count(arr));//{0:1,1:2,2:3}6.记录元素出现的位置函数position(arr=[],val){returnarr.reduce((t,v,i)=>(v===val&&t.push(i),t),[])}constarr=[2,1,5,4,2,1,6,6,7,2];console.log(position(arr,2));//07.去重letarr=[{id:1,name:"绝技"}{id:2,name:"绝技1"}{id:1,name:"绝技"}]functionunique(uniqueArr,arr){letobj={};returnuniqueArr.reduce((t,v)=>(!obj[v[key]]&&(obj[v[key]]=true&&t.push(v)),t),[]);},console.log(unique(arr),id);8.过滤数组constarr1=[1,2,3,4,5,6];constarr2=[2,3,5];functiondiff(arr=[],oarr=[]){returnarr.reduce((t,v)=>(!oarr.includes(v)&&t.push(v),t),[])}==>函数diff(arr=[],oarr=[]){returnarr.reduce((t,v)=>{if(!oarr.includes(v)){t.push(v)}返回t;},[])}console.log(diff(arr1,arr2));//[1,4,6]