Показать сообщение отдельно
  #6 (permalink)  
Старый 15.03.2018, 01:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Bond,
<script>
var data = {
            category: [ // Массив категорий
             {id: "1", name: "Авто", color: "#50bbde"},
             {id: "2", name: "Продукты", color: "#50bbde"}
            ],
            result: [
                // Массив записей, где name, color это категории из category выше,
                // а также есть idCategory - это id категорий
                {id: '1', idCategory: '1', nameItem: 'Бензин', price: '300', name: "Авто", color: "#50bbde"},
                {id: '2', idCategory: '1', nameItem: 'Мойка', price: '100', name: "Авто", color: "#50bbde"},
                {id: '3', idCategory: '2', nameItem: 'Хлеб', price: '10', name: "Продукты", color: "#50bbde"},
                {id: '4', idCategory: '2', nameItem: 'Молоко', price: '15', name: "Продукты", color: "#50bbde"}
            ]
        }
function fn(arr) {
  var obj = {}, data = [];
  arr.forEach(function(el) {
    var index = obj[el.name];
    if (index == void 0) {
      index = obj[el.name] = data.length;
      data.push({name:el.name, color:el.color, res:[], price:0});
    }
    var item = data[index];
    item.res.push(el);
    item.price += +el.price;
  });
  return data;
}
document.write(JSON.stringify(fn(data.result)))
</script>
Ответить с цитированием