【发布时间】:2019-07-11 13:23:46
【问题描述】:
我正在尝试使用 Amchart Multiple Values 显示图表,信息来自 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、循环等...但什么也没有。如果您对此有任何建议或任何信息,将不胜感激。 谢谢。
【问题讨论】:
标签: javascript object lodash