我正在使用jquery ajax和ajax响应是多维json数组,我将JSON值赋给coordinates数组,然后将coordinates数组赋给新的JSON coord_set,然后将所有值赋给coord_set,将所有的最后一个数组值,

例如
JSON结果包含以下值

obj[0]={125, 343, 456, 453},
obj[1]={345, 657, 234, 787},
obj[2]={980, 677, 657, 568}


转换为新的JSON后,值是:

coord_set[0] = {
                    fillColor : 'rgba(255, 234, 111 ,0.5)',
                    data : [980, 677, 657, 568]
               }
coord_set[1] = {
                    fillColor : 'rgba(255, 234, 111 ,0.5)',
                    data : [980, 677, 657, 568]
               }
coord_set[2] = {
                    fillColor : 'rgba(255, 234, 111 ,0.5)',
                    data : [980, 677, 657, 568]
               }


这是我的代码:

  var obj = JSON.parse(data);
  for(var j=0;j<obj.length;j++)
  {
      for (var i=0;i<obj[j].length;i++)
      {
                  coordinates[i] = obj[j][i].how_many;
      }

      coord_set[j] = { fillColor : 'rgba(255, 234, 111 ,0.5)', data : coordinates };
  }
  alert(JSON.stringify(coord_set));


请告诉我,如果我的代码做错了什么?

最佳答案

问题是您使用的是单个coordinates数组。您继续设置和重新设置同一数组中的值,并将同一数组存储在coord_set的新元素中。为了解决这个问题,您只需要在每次通过外循环的过程中使用一个新的coordinates数组:

  for(var j=0;j<obj.length;j++)
  {
      coordinates = [];      // <----- add this
      for (var i=0;i<obj[j].length;i++)

关于json - Javascript:分配给JSON对象后,数组会覆盖相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18306886/

10-14 22:46
查看更多