Javascript 如何优化阵列分组?

Javascript 如何优化阵列分组?,javascript,Javascript,我有一个不断更新的数组,因此有必要更新它的分组。阵列示例: [ { "price": 2419.62, "amount": 0.0266 }, { "price": 1927.52, "amount": 0.0217 }, ... ] 我尝试了不同的选择。目前,此选项是最快的: const points = [ { "price": 2419.62, "a

我有一个不断更新的数组,因此有必要更新它的分组。阵列示例:

[
 {
    "price": 2419.62,
    "amount": 0.0266
  },
  {
    "price": 1927.52,
    "amount": 0.0217
  },
  ...
]
我尝试了不同的选择。目前,此选项是最快的:

      const points = [
           {
              "price": 2419.62,
              "amount": 0.0266
            },
            {
              "price": 1927.52,
              "amount": 0.0217
            },
            ...
          ];
      const range = 500;
      const spread = 1800;
      const countGroup = 250;
      const sizeUnitGroup = range / countGroup;
      const groups = {};
      for (let i = 0;  i < countGroup; i++){
        groups[i] = [];
        try {
          points.forEach((item, id) => {
            if (item.price > spread + (i*sizeUnitGroup) && item.price <= spread + (i*sizeUnitGroup + sizeUnitGroup)){
              groups[i].push(item);
              points.splice(id, 1);
            }
            if (item.price > (spread + (i*sizeUnitGroup + sizeUnitGroup))) throw BreakException;
          });
        } catch (e) {
        }
      }
const points=[
{
“价格”:2419.62,
“金额”:0.0266
},
{
“价格”:1927.52,
“金额”:0.0217
},
...
];
常数范围=500;
常数分布=1800;
const countGroup=250;
const sizeUnitGroup=范围/计数组;
常量组={};
for(设i=0;i{
如果(item.price>spread+(i*sizeUnitGroup)和&item.price(spread+(i*sizeUnitGroup+sizeUnitGroup)),则抛出BreakException;
});
}捕获(e){
}
}

但即便如此,这个函数的工作时间也太长了。您知道如何优化吗?

您可以计算将值推送到所需插槽的时间间隔

var点=[
{价格:2419.62,金额:0.0266},
{价格:1927.52,金额:0.0217},
{价格:1800,金额:0.07},//-1不是结果
{价格:1800.000000000001,金额:0.07},//0
{价格:1802,金额:0.07},//0
],
范围=500,
排列=1800,
countGroup=250,
sizeUnitGroup=范围/计数组,
组={};
积分.forEach((项目,id)=>{
var i=数学.ceil((item.price-价差-sizeUnitGroup)/sizeUnitGroup);
如果(i>=0&&i

.as console wrapper{max height:100%!important;top:0;}
分组的逻辑是什么?请为示例数组发布一个示例更新(如何重新分组?)。这需要大量的迭代和拼接。迭代
数组并找出每个点应该进入哪个组不是更好吗?@doodlemeister你的意思是这就是它?是的,有帮助吗?它避免了每次都必须重新为数组编制索引的
.splice()