Javascript 如何在地图中添加对象属性

Javascript 如何在地图中添加对象属性,javascript,jquery,Javascript,Jquery,我试图在映射循环中添加属性 但我似乎是在一个副本上更新的,而不是对象本身 MY_ARRAY.map(function(d){ d.size = DO_SEOMTHING }); 使用而不是使用.map,map基本上将一个数组转换为另一个数组 $.each(MY_ARRAY,function(i,d){ d.size = DO_SEOMTHING }); 您必须重新分配MY_数组 MY_ARRAY = MY_ARRAY.map(function(d){ d.size = [some

我试图在映射循环中添加属性 但我似乎是在一个副本上更新的,而不是对象本身

MY_ARRAY.map(function(d){
  d.size = DO_SEOMTHING
});
使用而不是使用
.map
map
基本上将一个数组转换为另一个数组

$.each(MY_ARRAY,function(i,d){
  d.size = DO_SEOMTHING
});

您必须重新分配
MY_数组

MY_ARRAY = MY_ARRAY.map(function(d){
  d.size = [somevalue]; 
  return d; // as per comment
});
直接重写数组的另一种方法是使用数组本身作为初始值(有关此方法的更多信息,请参阅MDN链接):

发件人:

map()方法使用调用 在此数组中的每个元素上提供函数


同时发布数组内容。非法使用
.map()
。。!Map的回调应该返回一个值,以基于当前数组创建一个新数组。对于第二种变体,它不是必需的。
MY_ARRAY.map(function(d, i){
  this[i].d.size = [somevalue];
}, MY_ARRAY);