js 有10,000,000个范围在100以内的正整数,求出每个数字出现的次数,请教一个耗时最短的方法

0 0 javascript
aゞ特仑苏
aゞ特仑苏

声望值:97 0人

2018-12-22 09:30:33 提问

关注 0关注

收藏 0收藏, 30浏览

我的代码:

let data = {};
  var date1=new Date();
  console.log('date1',date1.getTime())
  let data = {};
  let list = [,,,];
  list.length = 10000000;
  for (let i = 0; i < list.length; i++) {
    list[i] = Math.floor(Math.random() * 100);
    if(data[`${list[i]}`]){
      data[`${list[i]}`]++
    } else {
      data[`${list[i]}`] = 1
    }
  }
  for(let key in data) {
    if (isNaN(data[`${key}`])) {
      data[`${key}`] = 0
    }
  }
  var date2=new Date();
  console.log('时间差',date2.getTime()-date1.getTime())

这个代码我看打印出时间差在700-750ms之间,感觉时间不短,能否把代码更优化?
这样是尝试出来最快的了

请先 登录 后评论

2个回答

注册新账号

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问