nodejs计使用 数组indexOf去重,特别耗时

如标题,使用数组方法indexOf来进行去重操作,为什么特别耗时,如图代码有什么优化方法。

https://img2.mukewang.com/5b45b4c90001b01308000433.jpg


DIEA
浏览 1584回答 3
3回答

慕慕森

Array.from(new Set(arr))用这个方法去重试试

慕田峪4524236

我不知道怎么提高,但是我说一点啊,根据我们公司的编码规范和个人习惯,数组的长度应该提前声明出来,不然每次循环都要计算数组的长度

慕沐林林

建议简化一下逻辑并附加一些测试数据,没多少人会有闲工夫通读你的代码,研究你的数据结构,然后再自己写代码给你产生一些测试数据,然后再想办法把你的代码片段放进去,进行测试另外说明一下都用了什么包。我能猜出来有momentjs,但是decimal是什么东西?或许这个才是耗时的罪魁祸首呢?一个简单的建议,用Setvar a = [1,2,3,4,5];console.time("array");for(var i=0;i<100000;i++){a.indexOf(9);}console.timeEnd("array");// array: 6.19287109375msvar 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++) {
打开App,查看更多内容
随时随地看视频慕课网APP