アレイのグループ化を最適化する方法は?

クララオズワルド

常に更新される配列があるため、そのグループ化を更新する必要があります。配列の例:

[
 {
    "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) {
        }
      }

しかし、それでも、この機能は長すぎます。これを最適化する方法はありますか?

ニーナ・ショルツ

値を必要なスロットにプッシュする間隔を計算できます。

var points = [
        { price: 2419.62, amount: 0.0266 },
        { price: 1927.52, amount: 0.0217 },
        { price: 1800, amount: 0.07 },              // -1 not in result
        { price: 1800.000000000001, amount: 0.07 }, //  0
        { price: 1802, amount: 0.07 },              //  0
    ],
    range = 500,
    spread = 1800,
    countGroup = 250,
    sizeUnitGroup = range / countGroup,
    groups = {};

points.forEach((item, id) => {
    var i = Math.ceil((item.price - spread- sizeUnitGroup) / sizeUnitGroup);
    if (i >= 0 && i < countGroup) {
        groups[i] = groups[i] || [];
        groups[i].push(item);
    }
});

console.log(groups);
.as-console-wrapper { max-height: 100% !important; top: 0; }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

次のforループコードを最適化する方法は?

分類Dev

Powershellでアレイをグループ化する方法は?

分類Dev

このbufferedimageループを最適化する方法は?

分類Dev

グーグルマップクライアントJavaAPIを使用してグーグルマップのルートを最適化する方法。

分類Dev

Scalaで結合されたRDDのグループ化を最適化する方法はありますか?

分類Dev

2つのforループでプログラムを最適化する方法

分類Dev

主キーでグループ化するときに他のテーブルからアイテムを選択するのに最適な方法

分類Dev

スノーフレーク上の適度に大きなタイプIIテーブルへの結合を最適化する方法は?

分類Dev

このMiniZincアプリを最適化する方法は?

分類Dev

pandasデータフレームの条件でdoubleforループを最適化する方法は?

分類Dev

グーグルプレイ最適化のヒントに関するAndroid公開アプリ(targetSdkVersionとminSdkVersionを確認してください)

分類Dev

forループオーバーイメージの条件ステートメントを最適化する方法は?

分類Dev

ループ内の重い処理-最適化する方法は?

分類Dev

これをforループに最適化する方法は?

分類Dev

このforループの計算速度を最適化する方法は?

分類Dev

イオンモバイルアプリ(Android)を高速化/最適化する方法は?

分類Dev

ReactNative内でアレイをグループ化する方法

分類Dev

100000回の反復でPythonループを最適化する方法は?

分類Dev

JSでサブアレイを共通の要素でグループ化する方法

分類Dev

このOpenCLカーネルを最適化する方法は?

分類Dev

matplotlib関数の最適化をアニメーション化する方法は?

分類Dev

LSFで使用するためにマルチスレッドプログラムを最適化する方法は?

分類Dev

アレイグループを個別のサブアレイグループにグループ化する

分類Dev

スクレイピングとループの最適化

分類Dev

隣接する配列アイテムを値でグループ化する最良の方法

分類Dev

長期的なパズル、Pythonでマルチレベルループを最適化する方法は?

分類Dev

G ++が最適化するのにCLang ++がループを最適化しないのはなぜですか?

分類Dev

プログラム内の現在の最適化レベルを取得する

分類Dev

ログファイルを色付けするためのスクリプトを最適化する方法

Related 関連記事

  1. 1

    次のforループコードを最適化する方法は?

  2. 2

    Powershellでアレイをグループ化する方法は?

  3. 3

    このbufferedimageループを最適化する方法は?

  4. 4

    グーグルマップクライアントJavaAPIを使用してグーグルマップのルートを最適化する方法。

  5. 5

    Scalaで結合されたRDDのグループ化を最適化する方法はありますか?

  6. 6

    2つのforループでプログラムを最適化する方法

  7. 7

    主キーでグループ化するときに他のテーブルからアイテムを選択するのに最適な方法

  8. 8

    スノーフレーク上の適度に大きなタイプIIテーブルへの結合を最適化する方法は?

  9. 9

    このMiniZincアプリを最適化する方法は?

  10. 10

    pandasデータフレームの条件でdoubleforループを最適化する方法は?

  11. 11

    グーグルプレイ最適化のヒントに関するAndroid公開アプリ(targetSdkVersionとminSdkVersionを確認してください)

  12. 12

    forループオーバーイメージの条件ステートメントを最適化する方法は?

  13. 13

    ループ内の重い処理-最適化する方法は?

  14. 14

    これをforループに最適化する方法は?

  15. 15

    このforループの計算速度を最適化する方法は?

  16. 16

    イオンモバイルアプリ(Android)を高速化/最適化する方法は?

  17. 17

    ReactNative内でアレイをグループ化する方法

  18. 18

    100000回の反復でPythonループを最適化する方法は?

  19. 19

    JSでサブアレイを共通の要素でグループ化する方法

  20. 20

    このOpenCLカーネルを最適化する方法は?

  21. 21

    matplotlib関数の最適化をアニメーション化する方法は?

  22. 22

    LSFで使用するためにマルチスレッドプログラムを最適化する方法は?

  23. 23

    アレイグループを個別のサブアレイグループにグループ化する

  24. 24

    スクレイピングとループの最適化

  25. 25

    隣接する配列アイテムを値でグループ化する最良の方法

  26. 26

    長期的なパズル、Pythonでマルチレベルループを最適化する方法は?

  27. 27

    G ++が最適化するのにCLang ++がループを最適化しないのはなぜですか?

  28. 28

    プログラム内の現在の最適化レベルを取得する

  29. 29

    ログファイルを色付けするためのスクリプトを最適化する方法

ホットタグ

アーカイブ