Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2019, 05:46
Интересующийся
Отправить личное сообщение для darktowerk56c Посмотреть профиль Найти все сообщения от darktowerk56c
 
Регистрация: 08.03.2019
Сообщений: 22

Как правильно сформировать данные?
Всем привет. Ребята, подскажите, пожалуйста, как на основании следующих данных:
[
  {
    "date": "2017-10-16 12:07:07",
    "name_doc_type": "Расход",
    "id": 564564867361367,
    "image": "http://ecosned.ru/image/cache/catalog/categories/iz_fermerskogo_moloka/tvorog/7/ge-catalog-categories-iz_fermerskogo_moloka-tvorog-tvorozhnaya_massa_s_kuragoy-800x800.jpg",
    "name": "Творог 9% с курагой",
    "price": 121.0,
    "quantity": 45,
    "removed": 0
  },
  {
    "date": "2017-10-16 15:09:08",
    "name_doc_type": "Расчет",
    "id": 564564867361368,
    "image": "https://images.ua.prom.st/50389447_w640_h640_ncheskaya_s_grushej_200_g..jpg",
    "name": "Молочный Груша 200",
    "price": 180.0,
    "quantity": 65,
    "removed": 0
  },
  {
    "date": "2017-10-16 15:09:08",
    "name_doc_type": "Расчет",
    "id": 564564867361368,
    "image": "https://www.komus.ru/medias/sys_master/root/hd3/h93/9286922043422.jpg",
    "name": "Молочный Изюм 100",
    "price": 102.0,
    "quantity": 72,
    "removed": 0
  },
  {
    "date": "2017-10-16 18:11:09",
    "name_doc_type": "Приход",
    "id": 564564867361369,
    "image": "http://irecommend.ru/sites/default/files/imagecache/copyright1/user-images/299388/Ydfgl76IXe0nEM2gO6Ww.JPG",
    "name": "Молочный Традиция 100",
    "price": 115.0,
    "quantity": 60,
    "removed": 0
  },
  {
    "date": "2017-10-16 18:11:09",
    "name_doc_type": "Приход",
    "id": 564564867361369,
    "image": "https://www.utkonos.ru/images/photo/3054/3054289H.jpg",
    "name": "Аленка карамель 100г Акционный товар Большая скидка",
    "price": 73.9,
    "quantity": 99,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://tashkentcena.com/files/products/893eebe7b69146290886dc504a3328ef.jpeg",
    "name": "Горький коньяк 100",
    "price": 336.0,
    "quantity": 94,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://www.utkonos.ru/images/photo/3176/3176192H.jpg",
    "name": "Сыр 125г",
    "price": 131.0,
    "quantity": 64,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://www.utkonos.ru/images/photo/3265/3265004H.jpg",
    "name": "Молочный Яблоко 100",
    "price": 25.1,
    "quantity": 52,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": null,
    "name": "Парус апельсин 1л",
    "price": 150.0,
    "quantity": 43,
    "removed": 1
  }
]

сформировать вот такую структуру данных:

Я имею в виду, что из исходных данных мне нужно сделать что-то вроде вот этого:
const data = [
    {
        id: 1,
        date: '2017-10-16',
        docs: [
            {
                "date": "2017-10-16 18:11:09",
                "name_doc_type": "Приход",
                "id": 564564867361369,
                "image": "https://www.utkonos.ru/images/photo/3054/3054289H.jpg",
                "name": "Аленка карамель 100г Акционный товар Большая скидка",
                "price": 73.9,
                "quantity": 99,
                "removed": 0
            },
            {
                "date": "2017-10-16 18:11:09",
                "name_doc_type": "Приход",
                "id": 564564867361369,
                "image": "https://mariupolcena.com/files/products/9ff44136e6ccb0afb404ad26f727e67d.jpeg",
                "name": "Русская картошка чедар 50",
                "price": 46.3,
                "quantity": 51,
                "removed": 0
            },
            {
                "date": "2017-10-16 12:07:07",
                "name_doc_type": "Расход",
                "id": 564564867361367,
                "image": "https://www.utkonos.ru/images/photo/3265/3265004H.jpg",
                "name": "Молочный Яблоко 100",
                "price": 25.1,
                "quantity": 44,
                "removed": 0
            }
        ]
    }
]

Следующий объект, это будет следующая дата с относящимися к ней данными и так далее.
Изображения:
Тип файла: jpg Screenshot_1.jpg (6.8 Кб, 5 просмотров)

Последний раз редактировалось darktowerk56c, 29.06.2019 в 06:21.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2019, 08:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

darktowerk56c,
const json = [
  {
    "date": "2017-10-16 12:07:07",
    "name_doc_type": "Расход",
    "id": 564564867361367,
    "image": "http://ecosned.ru/image/cache/catalog/categories/iz_fermerskogo_moloka/tvorog/7/ge-catalog-categories-iz_fermerskogo_moloka-tvorog-tvorozhnaya_massa_s_kuragoy-800x800.jpg",
    "name": "Творог 9% с курагой",
    "price": 121.0,
    "quantity": 45,
    "removed": 0
  },
  {
    "date": "2017-10-16 15:09:08",
    "name_doc_type": "Расчет",
    "id": 564564867361368,
    "image": "https://images.ua.prom.st/50389447_w640_h640_ncheskaya_s_grushej_200_g..jpg",
    "name": "Молочный Груша 200",
    "price": 180.0,
    "quantity": 65,
    "removed": 0
  },
  {
    "date": "2017-10-16 15:09:08",
    "name_doc_type": "Расчет",
    "id": 564564867361368,
    "image": "https://www.komus.ru/medias/sys_master/root/hd3/h93/9286922043422.jpg",
    "name": "Молочный Изюм 100",
    "price": 102.0,
    "quantity": 72,
    "removed": 0
  },
  {
    "date": "2017-10-16 18:11:09",
    "name_doc_type": "Приход",
    "id": 564564867361369,
    "image": "http://irecommend.ru/sites/default/files/imagecache/copyright1/user-images/299388/Ydfgl76IXe0nEM2gO6Ww.JPG",
    "name": "Молочный Традиция 100",
    "price": 115.0,
    "quantity": 60,
    "removed": 0
  },
  {
    "date": "2017-10-16 18:11:09",
    "name_doc_type": "Приход",
    "id": 564564867361369,
    "image": "https://www.utkonos.ru/images/photo/3054/3054289H.jpg",
    "name": "Аленка карамель 100г Акционный товар Большая скидка",
    "price": 73.9,
    "quantity": 99,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://tashkentcena.com/files/products/893eebe7b69146290886dc504a3328ef.jpeg",
    "name": "Горький коньяк 100",
    "price": 336.0,
    "quantity": 94,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://www.utkonos.ru/images/photo/3176/3176192H.jpg",
    "name": "Сыр 125г",
    "price": 131.0,
    "quantity": 64,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": "https://www.utkonos.ru/images/photo/3265/3265004H.jpg",
    "name": "Молочный Яблоко 100",
    "price": 25.1,
    "quantity": 52,
    "removed": 0
  },
  {
    "date": "2017-11-29 19:31:03",
    "name_doc_type": "Приход",
    "id": 564564867361363,
    "image": null,
    "name": "Парус апельсин 1л",
    "price": 150.0,
    "quantity": 43,
    "removed": 1
  }
];

let data = json.reduce((obj, el)=>{
let date = el.date.split(" ")[0];
if(obj[date]) obj[date].push(el);
else {
    let docs = [el], ob = {date, docs},
    id = obj.data.push(ob);
    ob.id = id;
    obj[date] = docs;
}
return obj
}, {data : []}).data;
console.log(data)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сравнивать временные метки? gsdev99 Элементы интерфейса 3 10.02.2019 12:20
Как правильно отрендерить данные на react с разрывом? s24344 Элементы интерфейса 0 28.01.2019 19:35
Как передать данные из одинаковых форм php скрипту через AJAX? griga999 AJAX и COMET 28 10.10.2016 06:09
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19