@nb said in Typescrypt array help.:
distance: Number } let steps: Array<Steps> = [ { startDate: '2020-10-21', endDate: '2020-10-22', steps: 101 }, { startDate: '2020-10-22', endDate: '2020-10-23', steps: 102 }, { startDate: '2020-10-24', endDate: '2020-10-25', steps: 103 } ]; let activity: Array<Distance> = [ { startDate: '2020-10-21', endDate: '2020-10-22', distance: 101 }, { startDate: '2020-10-22', endDate: '2020-10-23', distance: 102 }, { startDate: '2020-10-26', endDate: '2020-10-26', distance: 103 } ]; function join<L extends Record<string,any>, R extends Record<string,any>>(left: Array<L>, right: Array<R>, by: Array<string>) { const joined: Array<L&R> = []; for (let l of left) { const fromRight = right.find(r => by.every((curr) => (r[curr] == l[curr]), true)) if (fromRight === undefined) continue; joined.push({ ...fromRight, ...l}) } return joined; } console.log(join(steps, activity, ['startDate', 'endDate'])) /* [LOG]: [{ "startDate": "2020-10-21", "endDate": "2020-10-22", "distance": 101, "steps": 101 }, { "startDate": "2020-10-22", "endDate": "2020-10-23", "distance": 102, "steps": 102 }] */
Thanx Brother. man try karala balannam meka