Webpack Bundle Size Analyzer实战:React项目打包优化案例
2026/6/8 10:10:17
输入:[1,1,1,2,2,3,3,4,5,1];输出:[1,2,3,4,5];输入:[1,1,1];输出:[1];functionmyUniq(arr){// Create an empty object to keep track of unique elementsconstuniqueElements={};// Iterate through the array and add elements to the objectfor(constelementofarr){uniqueElements[element]=true;}// Create a new array from the object's keys (which are the unique elements)constresultArray=Object.keys(uniqueElements).map(Number);returnresultArray;}module.exports=myUniq;for(constelementofarr){uniqueElements[element]=true;}假设输入是 [1, 2, 1]:
遇到第一个 1:对象变成 { “1”: true }
遇到 2:对象变成 { “1”: true, “2”: true }
遇到第二个 1:对象依然是 { “1”: true, “2”: true }(重复的键被覆盖了)
constresultArray=Object.keys(uniqueElements).map(Number);这种方法的逻辑是:“先把数字存成对象的标签(自动去重),再把标签撕下来转回数字。”