Есть массив объектов
[
{
"id": 96,
"NAME": "Алексей Никашкин",
"PRODUCT": "BMK-60-3DU (до 60 кВт, подкл. котла G 1″, 1+1+1 контура G ¾″)",
"WELD_LENGTH": "300",
"DATE": "01.04.2019",
"DATE_TIMESTAMP": 1554066000,
"QUANTITY": "1"
},
{
"id": 97,
"NAME": "Алексей Никашкин",
"PRODUCT": "BMK-60-4D (до 60 кВт, подкл. котла G 1″, 3+1 контура G ¾″)",
"WELD_LENGTH": "400",
"DATE": "02.04.2019",
"DATE_TIMESTAMP": 1554066000,
"QUANTITY": "3"
},
{
"id": 98,
"NAME": "Алексей Морозов",
"PRODUCT": "BMK-60-5DU (до 60 кВт, подкл. котла G 1″, 2+2+1 контура G ¾″)",
"WELD_LENGTH": "500",
"DATE": "02.04.2019",
"DATE_TIMESTAMP": 1554066000,
"QUANTITY": "5"
}, {
"id": 99,
"NAME": "Алексей Морозов",
"PRODUCT": "BMK-60-5DU (до 60 кВт, подкл. котла G 1″, 2+2+1 контура G ¾″)",
"WELD_LENGTH": "500",
"DATE": "03.04.2019",
"DATE_TIMESTAMP": 1554066000,
"QUANTITY": "3"
}
]
UPDATED: Хочется получить массив объектов вида:
[
{
"date": ["01.04.2019", "02.04.2019", "03.04.2019"],
"name": "Алексей Морозов"
},
{
"date": ["01.04.2019", "02.04.2019", "03.04.2019"],
"name": "Алексей Никашкин"
}
]
Но получаю в таком виде:
{
"Алексей Морозов": {
"label": "Алексей Морозов",
"data": [
"02.04.2019",
"03.04.2019",
"01.04.2019",
"04.04.2019",
"05.04.2019"
]
},
"Алексей Никашкин": {
"label": "Алексей Никашкин",
"data": [
"02.04.2019",
"01.04.2019",
"03.04.2019",
"04.04.2019",
"05.04.2019"
]
}
}
Проблема в том что ключами родительских объектов являются имена -
},
"Алексей Никашкин": {
"label": "Алексей Никашкин",
"data": [
"02.04.2019",
"01.04.2019",
"03.04.2019",
"04.04.2019",
"05.04.2019"
]
}
, а мне нужно получить просто массив объектов Друг за другом. Экспортирую в chart.js
Пример кода:
let data = rows.reduce(function(result, value){
let name = value['NAME'];
let date = value['DATE'];
if(!result.hasOwnProperty(name)) {
result[name] = { label: name, data: [] };
}
/* Записали даты в массив */
result[name].data.push(date);
/* Оставили только уникальные значения */
result[name].data = Array.from(new Set([...result[name].data]));
return result;
}, {});
При добавлении нового человека создаете объект с именем и пустым масивом дат. И потом просто пополняете этот массив.
var data=[{"id":96,"NAME":"Алексей Никашкин","DATE":"01.04.2019",},{"id":97,"NAME":"Алексей Никашкин","DATE":"02.04.2019",},{"id":98,"NAME":"Алексей Морозов","DATE":"02.04.2019",},{"id":99,"NAME":"Алексей Морозов","DATE":"03.04.2019",}, {"id":100,"NAME":"Алексей Морозов","DATE":"03.04.2019",}];
var result = data.reduce(function(acc, v){
let name = v.NAME;
if(! (name in acc) ) {
acc[name] = { name: name, dates: [] };
}
if( acc[name].dates.indexOf(v.date) == -1){
acc[name].dates.push(v.DATE);
}
return acc;
}, {});
result = Object.keys(result).map( k => result[k] );
console.log(result);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вызываю метод sayMeow() в методе voice() без таймаутаВсе норм
Как из такой Organization/LimitedCompany/HousingCooperative строки можно сделать массив такого вида: ['Organization', 'Organization/LimitedCompany', 'Organization/LimitedCompany/HousingCooperative']?
В продакшен версии мои стили перебиваются стилями vuetify