如标题,使用数组方法indexOf来进行去重操作,为什么特别耗时,如图代码有什么优化方法。
3 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
建议简化一下逻辑并附加一些测试数据,没多少人会有闲工夫通读你的代码,研究你的数据结构,然后再自己写代码给你产生一些测试数据,然后再想办法把你的代码片段放进去,进行测试
另外说明一下都用了什么包。我能猜出来有momentjs,但是decimal
是什么东西?或许这个才是耗时的罪魁祸首呢?
一个简单的建议,用Set
var a = [1,2,3,4,5];console.time("array");for(var i=0;i<100000;i++){a.indexOf(9);}console.timeEnd("array");
// array: 6.19287109375ms
var a = new Set([1,2,3,4,5]);console.time("set");for(var i=0;i<100000;i++){a.has(9);}console.timeEnd("set");
// set: 2.494140625ms
以及for (var j = 0, l = data.length - 1; j < l; j++) {
- 3 回答
- 0 关注
- 1568 浏览
添加回答
举报
0/150
提交
取消