2013-11-15 3 views
0

У меня есть JSON данные, как показано ниже, которые я получаю от серверадобавить словари в массив с помощью forloop (каждый) в JQuery

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 к новому массиву?

ответ

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] 
    } 
}) 

Демо: Fiddle

+0

как добавить эти словари, созданные в к списку, на самом деле я хочу, чтобы создать список словарей в формате я упомянул в моем вопросе –

+0

что такое словарь и какой его формат –

+0

k может быть, мои условия разные, в любом случае я хочу получить результат в этом формате result = [ {label: "mark", data: 7, color: "# 4572A7"}, {label: "vicky", данные: 12, цвет: "# 4572A7"}, {label: "daniel", data: 30, color: "# 4572A7"}, {label: "hurray", data: 6, цвет: "# 4572A7"}, ]; –

Смежные вопросы