1

次の JavaScript グローバル オブジェクトを検討してください。

var obj = { key1: [ 'data1', 'data2', ... ], key2: [ 'data1, 'data2', ... ], ... }

の特定のキーに割り当てられた配列を変更する必要がある関数があるとしますobj。計算にローカル変数を使用し、関数の最後で配列を変更する方が効率的ですか、それともオブジェクトの奥深くにないため、配列を直接変更する必要がありますか?

本質的に、私はどの関数がより効率的かを尋ねています。

function local_variable() {
    var foo = [];
    $( selector ).map(function() {
        foo.push( $( this ).val() );
    });
    obj[ keyx ] = foo;
}

function global_object() {
    obj[ keyx ] = [];
    $( selector ).map(function() {
        obj[ keyx ].push( $( this ).val() );
    });
}

いつものように、これらの機能を実行するためのさらに良い方法があれば、教えてください。

4

2 に答える 2

3
function adeneos_object() {
    obj[ keyx ] = $.map($( selector ),function(el){return el.value;});
}
于 2013-06-15T19:52:10.483 に答える
1

jsPerf にはヘルプが付属しています

どうやら、毎回オブジェクトのプロパティにアクセスする ( ) のglobal_objectは、データを取得してさらに代入する ( local_variable) よりも遅いようです。

ただし、ご覧のとおり、特定のブラウザー (Firefox、ほぼ同等) で使用される最適化戦略に依存します。

于 2013-06-15T20:01:47.553 に答える