浣犳湁娌℃湁鎯宠繃濡備綍鍦╦s涓纭垎缁勬暟缁勶紵璁╂垜鐚滅寽锛屼綘瀵圭粨鏋滀笉澶弧鎰忓悧锛熸暟缁勫垎缁勬槸涓€涓緢甯歌鐨勬搷浣滐紝瀹炵幇鏂瑰紡鏈夊緢澶氱锛屼絾鏄埌鐜板湪杩樻病鏈塶ative鏂规硶锛屾墍鏈夊疄鐜扮殑鏂规硶閮芥湁浜涒€︹€﹀啑闀匡紵鎴戜滑灏嗘帰璁ㄥ浣曞鍏惰繘琛屽垎缁勫拰绠€鍖栥€係etupitemsarrayconstitems=[{type:'fruit',value:'馃崕',},{type:'fruit',value:'馃崌',},{type:'fruit',value:'馃崐',},{type:'vegetable',value:'馃ウ',},{type:'vegetable',value:'馃',},{type:'vegetable',value:'馃尪锔?,},];foritems鏁扮粍鎸夌被鍨嬪垎缁勶紝缁撴灉濡備笅锛歿"fruit":[{"type":"fruit","value":"馃崕"},{"type":"fruit","value":"馃崌"},{"type":"fruit","value":"馃崐"}],"vegetable":[{"type":"vegetable","value":"馃ウ"},{"type":"vegetable","value":"馃"},{"type":"vegetable","value":"馃尪锔?}]}鍓嶉潰鐨勫垎缁勬柟寮忓鏋滄兂鐪嬫渶浣虫柟妗堬紝鎮ㄥ彲浠ョ洿鎺ユ煡鐪嬮〉闈㈠簳閮ㄣ€俁educe浣跨敤Array.protoype.reduce锛岃櫧鐒秗educer鐨勬兂娉曠粡甯稿洜涓哄鏄撳鑷存棤娉曠悊瑙g殑璇硶鑰岃娣″寲銆俰tems.reduce((acc,item)=>({...acc,[item.type]:[...(acc[item.type]??[]),item],}),{},);缂栬緫锛氭湁浜涗汉寤鸿浣跨敤{...spread}鍙兘鏄竴绉嶅弽妯″紡鍜屽潖涓绘剰銆傚洜姝わ紝璁╂垜浠彁渚涘彟涓€绉嶅噺灏戣В鍐虫柟妗堛€俰tems.reduce((acc,item)=>{if(acc[item.type]){acc[item.type].push(item);}else{acc[item.type]=[item];}returnacc;},{});for...of璇硶constgroupedBy={};for(constitemofitems){if(groupedBy[item.type]){groupedBy[item.type].push(item);}else{groupedBy[item.type]=[item];}}Filter浣跨敤澶氱杩囨护鏂规硶鍙兘鏄渶鏄撹鐨勮В鍐虫柟妗堬紝浣嗗畠骞朵笉鏄渶浣崇殑銆傞渶瑕佸鏁扮粍杩涜澶氭杩囨护锛岃姹備綘瀵规瘡涓€缁勯兘浜嗗鎸囨帉銆俢onstgroupedBy={姘存灉锛氶」鐩€俧ilter((item)=>item.type==='fruit'),vegetable:椤圭洰銆俧ilter((item)=>item.type==='vegetable'),};閾炬帴绾嚱鏁扳殸锔忚涓嶈杩欐牱鍋氾紒杩欑函绮规槸涓轰簡婕旂ず鐩殑銆傚鏋滄垜浠兂鍦ㄤ娇鐢ㄥ嚱鏁板紡缂栫▼鐨勫悓鏃堕伩鍏嶄娇鐢╮educer锛岄偅寰堝揩灏变細鍙樺緱鑽掕艾鍙瑧銆傜敋鑷矴itHubCopilot:Labs涔熷緢闅捐В閲婃竻妤氥€傛垜浠兂瑕佽幏鍙栨墍鏈夌被鍨嬬殑椤圭洰骞跺皢瀹冧滑杞崲涓哄璞★紝鐒跺悗杩唬瀵硅薄鐨勫€硷紝浣跨敤鍊间綔涓洪敭锛屽苟浣跨敤杩囨护鍣ㄦ寜绫诲瀷鍒嗙粍濉厖瀹冧滑銆傪煒碘€嶐煉玂bject.values({...Array.from(newSet(items.map(({type})=>type))),}).map((type)=>({[type]:items.filter((item)=>item.type===type)}));Array.prototype.groupByTC39濮斿憳浼氭鍦ㄤ粙缁嶆暟缁勫垎缁勬彁妗堬紙鈿狅笍闃舵3锛夈€傪煄変粖澶╁紑濮嬩娇鐢紝闇€瑕佹彁渚汚rray.prototype.groupBy鏂规硶鎻愪緵绗﹀悎瑙勮寖鐨剆him/polyfill:https://github.com/es-shims/A....搴旇涔熸槸stage鐨勪竴閮ㄥ垎-3棰勮soon.items.groupBy(({type})=>type);杩欒繕鏈変粈涔堝ソ璇寸殑锛屽緢绠€鍗曚笉鏄悧锛熸垜杩笉鍙婂緟鍦板笇鏈涘畠涓嶦S2022銆乼s鍜屾祻瑙堝櫒鏀寔涓€璧峰彂甯冦€傚師鏂囷細Array.prototype.groupBy鏁戝満锛佸娉細鏈哄櫒缈昏瘧+涓汉绮楃暐鐞嗚В锛屽鏈夐敊璇鎸囨銆?/p>
