我试图在map循环中添加属性 但似乎我在副本上更新了对象本身。
MY_ARRAY.map(function(d){
d.size = DO_SEOMTHING
});
答案 0 :(得分:2)
您必须重新分配MY_ARRAY
MY_ARRAY = MY_ARRAY.map(function(d){
d.size = [somevalue];
return d; // as per comment
});
直接重写数组的另一种方法是使用数组本身作为初始值(有关详细信息,请参阅MDN链接):
MY_ARRAY.map(function(d, i){
this[i].d.size = [somevalue];
}, MY_ARRAY);
来自MDN:
map()方法创建一个 new 数组,其结果是调用a 为此数组中的每个元素提供了函数。
答案 1 :(得分:0)
使用$.each
代替使用.map
,Map
基本上会将一个数组转换为另一个数组。
$.each(MY_ARRAY,function(i,d){
d.size = DO_SEOMTHING
});