当前位置: 首页 > Web前端 > vue.js

代码写的好,Reduce方法少不了

时间:2023-03-31 15:05:05 vue.js

浣滆€咃細Ramgen璇戣€咃細鍓嶇灏忔櫤鏉ユ簮锛歞ev鏈夋ⅵ鎯筹紝鏈夊共璐э紝寰俊鎼滅储銆愬ぇ鍗冧笘鐣屻€戝叧娉ㄨ繖浣嶈繕鍦ㄦ礂纰楃殑娲楃鏅烘収娓呮櫒鐨勮彍鑲淬€傛湰鏂囧凡鏀跺綍鍒癎itHubhttps://github.com/qq449245884/xiaozhi锛岄噷闈㈡湁瀹屾暣鐨勬祴璇曠珯鐐广€佽祫鏂欏拰鎴戠殑涓€绾垮巶鍟嗚璋堢郴鍒楁枃绔犮€傛暟缁勪腑鐨剅educe灏卞儚涓€鏍归瓟鏉栵紝閫氳繃瀹冧綘鍙互鍋氫竴浜涢粦绉戞妧涔嬬被鐨勪簨鎯呫€傝娉曞涓嬶細reduce(callback(accumulator,currentValue[,index,array])[,initialValue])reduce鎺ュ彈涓や釜鍙傛暟锛屽洖璋冨嚱鏁板拰鍒濆鍊硷紝鍒濆鍊兼槸鍙€夌殑銆傚洖璋冨嚱鏁版帴鍙?涓弬鏁帮細绱鍊笺€佸綋鍓嶅€笺€佸綋鍓嶄笅鏍囥€佸綋鍓嶆暟缁勩€傚鏋渞educe鍙湁涓€涓弬鏁帮紝閭d箞绱姞鐨勫€煎氨鏄暟缁勫紑澶寸殑绗竴涓€硷紱濡傛灉reduce鏈変袱涓弬鏁帮紝閭d箞绱姞鐨勫€兼渶鍒濆氨鏄痠nitialValue鐨勫垵濮嬪€笺€傜劧鍚庡湪姣忔杩唬鏃讹紝灏嗚繑鍥炲€间綔涓虹疮鍔犲櫒鐨勭疮鍔犲€硷紝鐢ㄤ簬涓嬩竴娆¤凯浠c€備粖澶╄繖浜涗緥瀛愪腑鐨勫ぇ閮ㄥ垎鍙兘閮戒笉鏄棶棰樼殑鐞嗘兂瑙e喅鏂规锛屼富瑕佺洰鐨勬槸灞曠ず濡備綍浣跨敤reduce鏉ヨВ鍐抽棶棰樸€傛眰鍜屼箻娉?/summation[3,5,4,3,6,2,3,4].reduce((a,i)=>a+i);//30//鏈夊垵濮嬪寲鍊糩3,5,4,3,6,2,3,4].reduce((a,i)=>a+i,5);//35//濡傛灉绗竴娈典唬鐮佺湅涓嶆噦锛岄偅涔堢湅涓嬮潰鐨勪唬鐮佺瓑浠蜂簬[3,5,4,3,6,2,3,4].reduce(function(a,i){return(a+i)},0);//涔樻硶[3,5,4,3,6,2,3,4].reduce((a,i)=>a*i);鏌ユ壘鏁扮粍涓殑鏈€澶у€煎鏋滆浣跨敤reduce鏌ユ壘鏁扮粍涓殑鏈€澶у€硷紝鍙互杩欐牱鍋氾細[3,5,4,3,6,2,3,4].reduce((a,i)=>Math.max(a,i),-Infinity);涓婇潰锛屽湪姣忔杩唬涓紝鎴戜滑杩斿洖绱姞瀵勫瓨鍣ㄥ拰褰撳墠椤逛箣闂寸殑鏈€澶у€硷紝鏈€鍚庢垜浠緱鍒版暣涓暟缁勭殑鏈€澶у€笺€傚鏋滀綘鐪熺殑鎯冲湪涓€涓暟缁勪腑鎵惧埌鏈€澶у€硷紝娌℃湁涓婇潰鐨勶紝浣跨敤杩欎釜鏇寸畝娲侊細Math.max(...[3,5,4,3,6,2,3,4]);缁熶竴鏁扮粍letdata=[["The","re鈥嬧€媎","horse"],["Plane","over","the","ocean"],["Chocolate","ice","cream""is","awesome"],["this","is","a","long","sentence"]]letdataConcat=data.map(item=>item.reduce((a,i)=>`${a}${i}`))//缁撴灉['Theredhorse','Planeovertheocean','Chocolateicecreamisawesome','thisisalongsentence']鏄繖閲屾垜浠娇鐢╩ap閬嶅巻鏁扮粍涓殑姣忎竴椤癸紝鎴戜滑杩樺師鎵€鏈夌殑鏁扮粍锛屽苟灏嗘暟缁勮繕鍘熶负涓€涓瓧绗︿覆銆傚垹闄ゆ暟缁勪腑鐨勯噸澶嶉」letdupes=[1,2,3,'a','a','f',3,4,2,'d','d']letwithOutDupes=dupes.reduce((noDupes,curVal)=>{if(noDupes.indexOf(curVal)===-1){noDupes.push(curVal)}returnnoDupes},[])妫€鏌ョ疮鍔犲櫒鏁扮粍涓槸鍚﹀瓨鍦ㄥ綋鍓嶅€硷紝濡傛灉涓嶅瓨鍦ㄥ垯杩斿洖-1锛屽苟娣诲姞瀹冦€傚綋鐒讹紝鎮ㄥ彲浠ヤ娇鐢⊿et鏂规硶蹇€熷垹闄ら噸澶嶅€笺€傛湁鍏磋叮鐨勫彲浠ヨ嚜宸盙oogle涓€涓嬨€傞獙璇佹嫭鍙穂..."(())()(()())"].reduce((a,i)=>i==='('?a+1:a-1,0);//0[..."((())()(()())"].reduce((a,i)=>i==='('?a+1:a-1,0);//1[..."(())(()()))"].reduce((a,i)=>i==='('?a+1:a-1,0);//-1杩欐槸涓緢閰风殑椤圭洰锛屼箣鍓嶅湪閲屽彛鍒疯繃groupbyattributeletobj=[{name:'Alice',job:'DataAnalyst',country:'AU'},{name:'Bob',job:'Pilot',country:'US'},{name:'Lewis',job:'Pilot',country:'US'},{name:'Karen',job:'SoftwareEng'锛屽浗瀹讹細'CA'}锛寋name锛?Jona'锛屽伐浣滐細'Painter'锛屽浗瀹讹細'CA'}锛寋name锛?Jeremy'锛屽伐浣滐細'Artist'锛屽浗瀹讹細'SP'},]letppl=obj.reduce((group,curP)=>{letnewkey=curP['country']if(!group[newkey]){group[newkey]=[]}group[newkey].push(curP)returngroup},[])鍦ㄨ繖閲岋紝鎴戜滑灏嗙涓€涓璞℃暟缁勬寜鍥藉鍒嗙粍锛屽苟涓斿湪姣忔杩唬涓紝鎴戜滑妫€鏌ラ敭鏄惁瀛樺湪锛屽鏋滀笉瀛樺湪锛屾垜浠垱寤轰竴涓暟缁勶紝鐒跺悗灏嗗綋鍓嶆坊鍔犵殑瀵硅薄鎺ㄩ€佸埌杩欎釜鏁扮粍骞惰繑鍥炵粍鏁扮粍銆備綘鍙互鐢ㄥ畠鏉ュ垱寤轰竴涓嚱鏁帮紝g鎸夋寚瀹氶敭瀵瑰璞¤繘琛屽垎缁勩€傚睍骞虫暟缁刲etflattened=[[3,4,5],[2,5,3],[4,5,6]].reduce((singleArr,nextArray)=>singleArr.concat(nextArray),[])//Result:[3,4,5,2,5,3,4,5,6]杩欏彧鏄竴灞傦紝濡傛灉鏈夊灞傦紝鍙互鐢ㄩ€掑綊鍑芥暟瑙e喅锛屼絾鏄垜涓嶅枩娆㈠湪JS涓婂仛涓€浜涢€掑綊馃槀銆備竴涓鍏堢‘瀹氱殑鏂规硶鏄娇鐢?flat鏂规硶锛屽畠灏嗗仛涓嶽[3,4,5],[2,5,3],[4,5,6]].flat();鐩稿悓鐨勪簨鎯咃紱鍙湁姝f暟[-3,4,7,2,4].reduce((acc,cur)=>{if(cur>0){letR=cur**2;acc.push(R);}returnacc;},[]);//缁撴灉[16,49,4,144]鍙嶈浆瀛楃涓瞔onstreverseStr=str=>[...str].reduce((a,v)=>v+a)姝ゆ柟娉曢€傜敤浜庝换浣曞璞★紝鑰屼笉浠呬粎鏄瓧绗︿覆銆傝皟鐢╮everseStr("Hola")锛岃緭鍑虹粨鏋滀负aloH銆傚皢浜岃繘鍒惰浆鎹负鍗佽繘鍒禼onstbin2dec=str=>[...String(str)].reduce((acc,cur)=>+cur+acc*2,0)//绛変环浜巆onstbin2dec=(str)=>{return[...String(str)].reduce((acc,cur)=>{return+cur+acc*2},0)}涓轰簡璇存槑杩欎竴鐐癸紝璁╂垜浠湅涓€涓緥瀛愶細(10111)->1+(1+(1+(0+(1+0*2)*2)*2)*2)*2銆倊鏈€鍚庯紝鎴戞槸纰楀織銆佹潕蹇楃瓑锛岄€€浼戝悗鎯冲洖瀹舵憜鍦版憡銆備笅娆¤锛佷唬鐮侀儴缃插悗鍙兘瀛樺湪鐨刡ug锛屾棤娉曞疄鏃惰幏鐭ャ€備簨鍚庝负浜嗚В鍐宠繖浜沚ug锛岃姳璐逛簡澶ч噺鐨勬椂闂村湪鏃ュ織璋冭瘯涓娿€傞『渚挎帹鑽愪竴涓ソ鐢ㄧ殑bug鐩戞帶宸ュ叿Fundebug銆傚師鏂囷細https://dev.to/ramgendepy/lea...浜ゆ祦鏈夋ⅵ鎯筹紝鏈夊共璐э紝寰俊鎼滅储銆愬ぇ鍗冧笘鐣屻€戝叧娉ㄨ繖浣嶅ぇ娓呮棭杩樺湪娲楃鐨勬礂纰楁櫤鎱с€傛湰鏂嘒itHubhttps://github.com/qq44924588...宸叉敹褰曪紝鏈夊畬鏁寸殑娴嬭瘯绔欑偣銆佽祫鏂欏拰鎴戠殑涓€绾垮巶鍟嗚璋堢郴鍒楁枃绔犮€?/p>