我发现了一个行为,当尝试使用循环来改变对象中属性的值时,我并没有想到。如何更新循环内的对象属性?
基本上,我声明我的对象在循环之外。 然后我循环一个数值的数组,这些数值用于更新对象属性。 在循环内部,我将当前对象状态存储在外部数组中。
结果是,不是让一个数组包含一系列具有不同数值的对象,而是最终在每个存储的对象中都有相同的数值。
这里是小提琴http://jsfiddle.net/fAypL/1/
jQuery(function(){
var object_container = [];
var numeric_values = [1, 2 , 3, 4];
var my_object = {};
jQuery.each(numeric_values, function(index, value){
my_object['value'] = value;
object_container.push(my_object);
});
jQuery.each(object_container, function(index, value){
jQuery('#content').prepend(value['value']);
});
});
我希望得到1 2 3 4为存储在每个对象的值,但是,我得到的是4 4 4 4,这没有任何意义对我来说。
这种行为任何暗示是更受欢迎,感谢
正确的,并且以固定,创建一个新的'my_object'每次迭代在'推'之前。 – rvighne