JSFiddle - React, Tailwind, and code Playground

by nickxbs

JavaScript

const data =[    {
        "minutesAgo": 19,
        "heartRate": 71,
        "created_day": "2022-08-28"
    },
    {
        "minutesAgo": 24,
        "heartRate": 77,
        "created_day": "2022-08-28"
    },
    {
        "minutesAgo": 29,
        "heartRate": 79,
        "created_day": "2022-08-28"
    }]


const data2 =[    {
        "minutesAgo": 29,
        "created_day": "2022-08-28",
        "steps": 15
    },
    {
        "minutesAgo": 34,
        "created_day": "2022-08-28",
        "steps": 0
    }]
    ///Merge
		const merged = [];
		([...data, ...data2]).reduce((arr, current) => {
			console.log('arr find', arr)
			let el = arr.find(a => a.created_day === current.created_day && a.minutesAgo === current.minutesAgo)
			if (el) {
				console.log('current', current)
				Object.assign(el, current);
				console.log('el', el)

			} else {
				arr.push({ heartRate: -1, steps: -1, ...current })
			}
			return arr;
		}, merged)
    
console.log(merged)