乱数をインデックスとして、オブジェクトを要素として作成された配列は、間違った結果をもたらします

火星

私はこの小さなスクリプトを持っており、乱数をローリングして配列にプッシュします。アイテム(オブジェクト)が存在しない場合は追加する必要があり、存在しない場合は更新する必要があります。IDは一意の識別子である必要があります。どういうわけか私は重複したIDを取得し、なぜそれが起こるのかわかりません。

私はロールの後にこれを手に入れたいと思っていました(30ロールの例):

[{"id":1,"min":0,"max":18},{"id":2,"min":0,"max":2},{"id":3,"min":0,"max":10}]

の代わりに:

[{"id":1,"min":0,"max":7},{"id":2,"min":0,"max":2},{"id":3,"min":0,"max":10},{"id":1,"min":0,"max":11}]

誰かが問題が何であるかを知っていますか?前もって感謝します。

var coll_ = [];

for (i = 0; i < 30; i++) {

  random_number = Math.floor((Math.random() * 3) + 1);

  if (!coll_[random_number]) {

    // Item doesnt exist so will be added to the array
    coll_.push({
      id: random_number,
      min: 0,
      max: 1
    });
  } else {
    // Item exists so it will be updated
    coll_[random_number]['max']++;
  }
}

document.write(JSON.stringify(coll_));

特定のパフォーマンス

coll配列です。チェックでは、coll_[random_number]インデックスが存在するかどうかのみがチェックされます。これは、必ずしも。とは関係ありませんid配列を使用する代わりに、idsでインデックス付けされたオブジェクトを使用し、反復が完了した後にそのオブジェクトの値を取得します。

const obj = {};
for (let i = 0; i < 30; i++)
{
  const rand = Math.floor((Math.random() * 3) + 1);

  if ( !obj[rand] ) {
  // Item doesnt exist so will be added to the array
     obj[rand] = {id: rand, min: 0, max: 1};
     
  } else {
     // Item exists so it will be updated
     obj[rand].max++;
  } 
}

console.log(Object.values(obj));

また、グローバル変数を暗黙的に作成しないようにしてください。新しい変数名を使用するときは、常に最初にconst(またはletまたはvar)で宣言してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ステンシルバッファを使用してオブジェクトの輪郭を描くと、間違った結果が得られます

分類Dev

配列>オブジェクト:結果のネストされた要素からインデックスを省略して、reduceを使用してオブジェクトの配列にインデックスを付ける方法(es2017)?

分類Dev

要素をdomに追加すると、[オブジェクトオブジェクト]または配列から間違ったデータが返されます

分類Dev

配列プロパティにバインドされた値としてオブジェクトを含むVueJSチェックボックスは、チェックを外しても配列から外れません

分類Dev

Blender 2.8 python、bisectを使用してオブジェクトを2つに分割すると、間違った結果が生成されます

分類Dev

リクエストを使用して常にsubredditのトップ投稿をスクレイピングすると、間違った結果が返されます

分類Dev

オブジェクトの配列:オブジェクトキーまたは配列インデックスまたは配列アイテム自体を介して特定のアイテムを選択することをお勧めしますか?

分類Dev

Angularデータテーブルの結果: '[オブジェクトオブジェクト]'を差分しようとしてエラーが発生しました。配列と反復可能オブジェクトのみが許可されます

分類Dev

Javascriptはネストされた配列をオブジェクトとして認識します

分類Dev

Javaは配列として作成されたオブジェクトを認識していません

分類Dev

マングースを使用して、参照されたオブジェクトの配列から要素をプルすることは可能ですか?

分類Dev

List <T>は、独自に使用するために、追加されたオブジェクトの新しいインスタンスを参照または作成することによって、新しいオブジェクトを追加しますか?

分類Dev

配列からオブジェクトにランダムな値をコピーしても安定した結果を得ることができません

分類Dev

BluebirdpromisifyAllを使用したマングース-モデルオブジェクトのsaveAsyncは、解決されたpromise値として配列になります

分類Dev

リストとして指定された要素のインデックスを使用して、Python配列から要素を削除します

分類Dev

クエリによって返されたオブジェクトをサイズ1の配列としてネストします

分類Dev

C ++:ベースオブジェクトのリストで、派生メモリは参照によって渡されたときに予期しない結果をもたらします

分類Dev

Djangoは、別のオブジェクトが作成されたときにモデルの多くのインスタンスを作成して保存します

分類Dev

オブジェクトのネストされた配列を使用して、オブジェクトの配列からcsvを作成しますjavascript

分類Dev

ソート配列は間違った結果をもたらします

分類Dev

PHPセッションに保存されたオブジェクトは、間違った値を保存します

分類Dev

他のオブジェクトと比較して 1 つまたは 2 つのキーを持たないオブジェクトであっても、オブジェクトの配列を通じてマップします。

分類Dev

constexprコンストラクターは、コンパイル時にGCCによって評価されると、異なる結果をもたらします。

分類Dev

クラスオブジェクトを間違ったタイプとして初期化する

分類Dev

AppSync-配列とオブジェクトを使用してネストされたミューテーションを作成しますか?

分類Dev

ソートされた配列内のnp配列のID(またはインデックス)を、可能な反復要素とともに検索します

分類Dev

オブジェクト/モデルから結果を取得し、その値をテキストボックスまたは別の変数に割り当てる方法。結果をリストボックスに割り当てるのと似ています

分類Dev

私のクイックソートの実装は間違った結果をもたらします

分類Dev

深いネストされたキーによって重複をマッピングした後、オブジェクトの配列全体を取得します

Related 関連記事

  1. 1

    ステンシルバッファを使用してオブジェクトの輪郭を描くと、間違った結果が得られます

  2. 2

    配列>オブジェクト:結果のネストされた要素からインデックスを省略して、reduceを使用してオブジェクトの配列にインデックスを付ける方法(es2017)?

  3. 3

    要素をdomに追加すると、[オブジェクトオブジェクト]または配列から間違ったデータが返されます

  4. 4

    配列プロパティにバインドされた値としてオブジェクトを含むVueJSチェックボックスは、チェックを外しても配列から外れません

  5. 5

    Blender 2.8 python、bisectを使用してオブジェクトを2つに分割すると、間違った結果が生成されます

  6. 6

    リクエストを使用して常にsubredditのトップ投稿をスクレイピングすると、間違った結果が返されます

  7. 7

    オブジェクトの配列:オブジェクトキーまたは配列インデックスまたは配列アイテム自体を介して特定のアイテムを選択することをお勧めしますか?

  8. 8

    Angularデータテーブルの結果: '[オブジェクトオブジェクト]'を差分しようとしてエラーが発生しました。配列と反復可能オブジェクトのみが許可されます

  9. 9

    Javascriptはネストされた配列をオブジェクトとして認識します

  10. 10

    Javaは配列として作成されたオブジェクトを認識していません

  11. 11

    マングースを使用して、参照されたオブジェクトの配列から要素をプルすることは可能ですか?

  12. 12

    List <T>は、独自に使用するために、追加されたオブジェクトの新しいインスタンスを参照または作成することによって、新しいオブジェクトを追加しますか?

  13. 13

    配列からオブジェクトにランダムな値をコピーしても安定した結果を得ることができません

  14. 14

    BluebirdpromisifyAllを使用したマングース-モデルオブジェクトのsaveAsyncは、解決されたpromise値として配列になります

  15. 15

    リストとして指定された要素のインデックスを使用して、Python配列から要素を削除します

  16. 16

    クエリによって返されたオブジェクトをサイズ1の配列としてネストします

  17. 17

    C ++:ベースオブジェクトのリストで、派生メモリは参照によって渡されたときに予期しない結果をもたらします

  18. 18

    Djangoは、別のオブジェクトが作成されたときにモデルの多くのインスタンスを作成して保存します

  19. 19

    オブジェクトのネストされた配列を使用して、オブジェクトの配列からcsvを作成しますjavascript

  20. 20

    ソート配列は間違った結果をもたらします

  21. 21

    PHPセッションに保存されたオブジェクトは、間違った値を保存します

  22. 22

    他のオブジェクトと比較して 1 つまたは 2 つのキーを持たないオブジェクトであっても、オブジェクトの配列を通じてマップします。

  23. 23

    constexprコンストラクターは、コンパイル時にGCCによって評価されると、異なる結果をもたらします。

  24. 24

    クラスオブジェクトを間違ったタイプとして初期化する

  25. 25

    AppSync-配列とオブジェクトを使用してネストされたミューテーションを作成しますか?

  26. 26

    ソートされた配列内のnp配列のID(またはインデックス)を、可能な反復要素とともに検索します

  27. 27

    オブジェクト/モデルから結果を取得し、その値をテキストボックスまたは別の変数に割り当てる方法。結果をリストボックスに割り当てるのと似ています

  28. 28

    私のクイックソートの実装は間違った結果をもたらします

  29. 29

    深いネストされたキーによって重複をマッピングした後、オブジェクトの配列全体を取得します

ホットタグ

アーカイブ