Javascript 修改对象中数组的性能:是否使用变量?
考虑以下JavaScript全局对象:Javascript 修改对象中数组的性能:是否使用变量?,javascript,jquery,arrays,variables,object,Javascript,Jquery,Arrays,Variables,Object,考虑以下JavaScript全局对象: var obj = { key1: [ 'data1', 'data2', ... ], key2: [ 'data1, 'data2', ... ], ... } 假设我有一个函数需要修改分配给obj中特定键的数组。在计算中使用局部变量并在函数末尾修改数组是否更有效,还是应该直接修改数组,因为它不在对象的深处 本质上,我是在问哪个功能更有效: function local_variable() { var foo = []; $( se
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() );
});
}
一如既往,如果有更好的方法来实现这些功能,请告诉我。
function adeneos_object() {
obj[ keyx ] = $.map($( selector ),function(el){return el.value;});
}
显然,每次访问对象的属性(global\u object
)都比数据采集和进一步赋值(local\u variable
)慢
但是,正如您所看到的,这取决于特定浏览器(Firefox,几乎相同)使用的优化策略
显然,每次访问对象的属性(global\u object
)都比数据采集和进一步赋值(local\u variable
)慢
但是,正如您所看到的,这取决于特定浏览器(Firefox,几乎相同)所使用的优化策略。虽然这两个函数都“起作用”,但这是对
.map
函数的不当使用。也许这有助于更好地理解它:。这个问题没有实际意义。您使用的映射方法是错误的。它用于循环一个数组并返回另一个数组,但您使用它作为each方法。虽然这两个函数都“起作用”,但它不适合使用.map
函数。也许这有助于更好地理解它:。这个问题没有实际意义。您使用的映射方法是错误的。它用于循环一个数组并返回另一个数组,但您使用它作为each方法。这是您使用map方法的方式。这是您使用map方法的方式。