0

我有如下 json 数据,我从服务器获取

result =     [
      {"transactions": 7, "products__name": "mark"}, 
      {"transactions": 12, "products__name": "vicky"}, 
      {"transactions": 30, "products__name": "daniel"},   
      {"transactions": 6, "products__name": "hurray "}]

现在我想在上面的 json 响应中添加额外的项目并更改字典中的键名,我想要以下格式的结果

 result =    [
        { label: "mark",  data: 7, color: "#4572A7"},
        { label: "vicky",  data: 12, color: "#4572A7"},
        { label: "daniel",  data: 30, color: "#4572A7"},
        { label: "hurray",  data: 6, color: "#4572A7"},
    ];

我想执行上述逻辑jquery并完成以下操作

      var array = [];
      var dictionary = {};
      $.each(result, function(key,val){
              dictionary['label'] = val.products__name;
              dictionary['data'] = val.revenue;
              dictionary['color'] = '#4572A7';
              console.log(dictionary);
            array.push(dictionary)
          });
         console.log(array);
});

因此,从上面的 jquery 循环代码中,我可以遍历 json 数组并可以创建具有不同标签和项目的字典,但是当我将其推入时new array,只有起始字典被重复插入到数组中,例如同一条记录在数组中显示 4 次

那么我的代码有什么问题,谁能告诉我需要做什么才能将不同的 dic 项目推送到新数组?

4

1 回答 1

1

使用$.map()

var colors = [' #bee485', '#f67d79', '#fdd35b', '#a8eaf7'];
var dictionary = $.map(result, function (rec, idx) {
    return {
        label: rec.products__name,
        data: rec.transactions,
        color: colors[idx % colors.length]
    }
})

演示:小提琴

于 2013-11-15T06:46:57.647 回答