【发布时间】:2019-06-05 23:30:49
【问题描述】:
使用下面的代码,我能够获得重复,但我试图通过使用transactionDate 属性从每种药物中获取最新对象,下面的代码仅过滤重复项,任何想法如何获取每种药物的最新交易。
main.js
var drugsArray = [{
drugName: "ADVIL",
transactionDate: "2018-12-15"
},{
drugName: "ADVIL",
transactionDate: "2018-12-28"
},
{
drugName: "ATRIPLA",
transactionDate: "2018-12-05"
},{
drugName: "ATRIPLA",
transactionDate: "2018-12-21"
}
];
function getDrugs(data) {
let filtered = data.reduce((accumulator, current) => {
if (! accumulator.find(({drugName}) => drugName === current.drugName)) {
var checkRecentDate = getLatestDateSave(current.transactionDate)
if(checkRecentDate) {
accumulator.push(current);
}
}
return accumulator;
}, []);
console.log(filtered);
}
getDrugs(drugsArray);
使用此函数获取最近的日期对象
function getLatestDateSave(xs) {
if (xs.length) {
return xs.reduce(function(m, i) {
return (i.MeasureDate > m) && i || m;
}, "").MeasureDate;
}
}
预期输出是
result = [{
drugName: "ADVIL",
transactionDate: "2018-12-28"
},
{
drugName: "ATRIPLA",
transactionDate: "2018-12-21"
}
];
【问题讨论】:
标签: javascript arrays angular ecmascript-6