Я пытаюсь отобразить график, используя Несколько значений Amchart информация поступает из ElasticSearch. И это мой код JS:
$.get(URI).then(resp => JSON.parse(resp))
.then(values => {
console.log(values)
var data = [],
values.map(e => e._source) //From Elastic the info is inside '_source' key
.map((n, i) => {
n.date = moment(n.date).format('Y-MM-DD');
// I'm trying to format date, because it cames with Hour:Min:Sec and if I
// try to compare dates it wont be equal (NOT USING IN THIS ATTEMPT)
if (n.warehouse.name === 'General') {
data.push({date: n.date, general: n.assessment});
} else {
data.push({date: n.date, intransit: n.assessment});
}
});
})
.fail(err => console.error(err.response));
Это вывод с этим кодом:
0: {date: "2019-07-10", intransit: 1234.23}
1: {date: "2019-07-10", general: 1234.23}
2: {date: "2019-07-12", intransit: 1234.23}
3: {date: "2019-07-12", general: 1234.23}
Как видите, дата дублируется, как я могу объединить / сгруппировать оба, но без потери значения?
Информация должна быть такой:
0: {date: "2019-07-10", intransit: 1234.23, general: 1234.23}
2: {date: "2019-07-12", intransit: 1234.23, general: 1234.23}
Если вы не можете визуализировать структуру из Elastic, это вывод из console.log (values):
_source: {date: "2019-07-10", assessment: 123.12,
warehouse: {id: 1, name: "General"}
Я пробовал с Lodash / UnderscoreJS, циклами и т. Д ... и ничего. Если вы знаете какой-либо совет или что-нибудь по этому поводу, будет признателен.
Спасибо.