どちらが速いか:配列またはオブジェクトを反復処理します。そして、間にある要素を削除するなどのアクションを実行する必要がある場合はどうなりますか?
var a = {"A1":1, "B1":2, "C1":3};
また
var a = ["A1", "B1", "C1"];
どちらが速いか:配列またはオブジェクトを反復処理します。そして、間にある要素を削除するなどのアクションを実行する必要がある場合はどうなりますか?
var a = {"A1":1, "B1":2, "C1":3};
また
var a = ["A1", "B1", "C1"];
配列の反復は、オブジェクトの反復よりも高速である必要がありますが、次の条件によって異なります。
古いブラウザーでは、配列から要素を削除するのは非常にコストがかかりました (後続のすべての要素のキーを変更する必要があるため) が、最新のブラウザーではそれほど問題になりません。
真剣に、プロジェクトに最適な表現を使用してください。問題が発生した場合は、後で最適化について心配してください。
配列またはオブジェクトを反復処理するのはどちらが高速ですか?
配列はより効率的に格納される可能性があり、そのインデックスも予測可能です (ルックアップは不要です)。高速になるはずですが、小さなセットでは違いに気付かないでしょう。
間にある要素を削除するなどのアクションを実行する必要がある場合はどうなりますか?
オブジェクトを使えば簡単です。あなたはただ電話するだけdelete a.A1;
です。それはO(1)
操作です。
を使用して配列を使用するa.splice(1,1);
と、すべてのアイテムの名前を変更する必要があり、頻繁に発生する場合はかなり遅くなります ( O(n)
)。