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

时间:2014-08-18 09:07:41

标签: javascript jquery

我试图在map循环中添加属性 但似乎我在副本上更新了对象本身。

MY_ARRAY.map(function(d){
  d.size = DO_SEOMTHING
});

2 个答案:

答案 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代替使用.mapMap基本上会将一个数组转换为另一个数组。

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