为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

DIEA 2018-07-04 15:14:08
如标题,使用数组方法indexOf来进行去重操作,为什么特别耗时,如图代码有什么优化方法。
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

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

查看完整回答
反对 回复 2018-07-11
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

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

查看完整回答
反对 回复 2018-07-11
?
慕沐林林

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++) {

查看完整回答
反对 回复 2018-07-11
  • 3 回答
  • 0 关注
  • 1568 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信