JSFiddle - React, Tailwind, and code Playground
by karthick6891
JavaScript
function getResults() {
const checkResult = res => res.ok ? res.json() : Promise.resolve({});
const joinMap = ({title, body:lbody}, {name,body:rbody}) => ({title,lbody, rbody,name});
const equiJoin = (xs, ys, primary, foreign, sel) => {
const ix = xs.reduce(
(ix, row) => ix.set(row[primary], row), new Map()
);
return ys.map(row => sel(ix.get(row[foreign]), row));
}
const posts = fetch("https://jsonplaceholder.typicode.com/posts")
.then(checkResult);
const comments = fetch("https://jsonplaceholder.typicode.com/comments")
.then(checkResult);
return Promise.all([posts, comments])
.then(([postData, commentData]) => {
const result = equiJoin(postData, commentData,"id", "postId", joinMap);
console.log(result);
})
.catch(err => console.error(err));
}
getResults()