问题描述
我有两个包含低值和高值的对象数组,如何通过检查类似日期的相似文件将它们合并,并将它们组合为低值和高值并返回一个数组。
data = {
low: [
{ date: '2020-09-17',value: '50' },{ date: '2020-09-18',value: '52' },{ date: '2020-09-15',value: '45' },],high: [
{ date: '2020-09-17',value: '70' },value: '75' },value: '80' },};
// Expected Output new array with date sort:
[
{ date: '2020-09-18',value: '52/75' },{ date: '2020-09-17',value: '70/50' },value: '45/80' },];
解决方法
可以通过Array.map()
和Array.find()
如下实现:
data = {
low: [
{ date: '2020-09-17',value: '50' },{ date: '2020-09-18',value: '52' },{ date: '2020-09-15',value: '45' },],high: [
{ date: '2020-09-17',value: '70' },value: '75' },value: '80' },};
let result = data.low.map(oLow => {
oLow.value += '/' + data.high.find(oHigh => oHigh.date == oLow.date).value;
return oLow;
});
result.sort((a,b) => new Date(b.date) - new Date(a.date));
console.log(result);
,
您可以使用map
,find
和sort
const res = data.low.map(l => ({
date: l.date,value: `${l.value}/${data.high.find(h => h.date === l.date).value}`
})).sort((a,b) => b.date.localeCompare(a.date))
const data = {
low: [
{ date: '2020-09-17',high: [
{ date: '2020-09-17',};
const res = data.low.map(l => ({
date: l.date,b) => b.date.localeCompare(a.date))
console.log(res)
.as-console-wrapper { max-height: 100% !important; }