特定のIDを持つ配列内のオブジェクトを見つけるルックアップ関数を持つか、配列内の穴を持つinループのためだけに使う?ルックアップ関数またはinループ用?
私の状況では、ダイナミックなプレーヤーの配列があります。のは、私の配列は次のようになりますので、3人の選手が接続されているとしましょう:
players = [player1, player2, player3]
ID 2人のプレーヤーの配列にして順に第三であると私はそのプレイヤーを知っているだろうプレイヤーIDとして配列のキーを維持するのは簡単だろう彼にアクセスし、私はちょうど使用する必要があります:players[2]
をしかし第二プレイヤーが離れると、彼は、配列の穴を作成:
players = [player1,,player3]
を私は理解してこの穴は、私が使用しているため、アレイを使用してのパフォーマンスが低下し-ためのループ多くの場合、プレーヤーオブジェクトの配列を持つ方がいいですし、配列の穴を残す代わりに穴をスプライスするだけですか?しかし、この方法では配列キーをプレーヤーIDとして保持できないため、ID検索機能を使用する必要があります。だから最終的にこれらの2つの選択肢のどれがパフォーマンスのために良いですか?それともこの問題を解決するためのより良い方法がありますか?
ありがとうございました!
2(または200または2000)の要素の配列に関しては、それは本当に重要ではありません。 – zerkms
プロパティキーがプレーヤーIDであるところの –
のjavascriptオブジェクトを使用しない理由 "プログラマーは、プログラムの重要ではない部分のスピードを考えたり心配したりするために膨大な時間を無駄にします。デバッグやメンテナンス時のインパクトを考慮する必要があります。時間の約97%という小規模な効率性を忘れるべきです。早すぎる最適化はすべての悪の根源ですが、重要な3%で機会を逃してはいけません。 "Donald Knuth –