Skip to content

Instantly share code, notes, and snippets.

@koalicioous
Created July 21, 2022 07:33
Show Gist options
  • Save koalicioous/98728787464bf43b7eec04a00b408bdd to your computer and use it in GitHub Desktop.
Save koalicioous/98728787464bf43b7eec04a00b408bdd to your computer and use it in GitHub Desktop.
Map Targets to Job Titles
/**
* 1. Differentiate Senior and Junior
* 2. Differentiate blast sequence
* 3. Generate Job Title
*/
export const generateJobReccomendationBlast = (targets) => {
const senior = targets.filter((item) => item.yearsOfExperience >= 3)
const junior = targets.filter((item) => item.yearsOfExperience < 3)
const seniorNumberOfBlast = senior
.map((item) => item.blastSequence)
.reduce((prev, cur) => {
if (prev.includes(cur)) return prev
return [...prev, cur]
}, [])
.sort((a, b) => a - b)
const juniorNumberOfBlast = junior
.map((item) => item.blastSequence)
.reduce((prev, cur) => {
if (prev.includes(cur)) return prev
return [...prev, cur]
}, [])
const seniorBlast = seniorNumberOfBlast
.reduce((prev, cur) => {
return [
...prev,
{
blastSequence: cur,
jobTitles: senior
.filter((item) => item.blastSequence === cur)
.map((item) => item.jobName)
.reduce((prev, cur) => {
if (prev.includes(cur)) return prev
return [...prev, cur]
}, [])
}
]
}, [])
.sort((a, b) => a.blastSequence - b.blastSequence)
const juniorBlast = juniorNumberOfBlast
.reduce((prev, cur) => {
return [
...prev,
{
blastSequence: cur,
jobTitles: junior
.filter((item) => item.blastSequence === cur)
.map((item) => item.jobName)
.reduce((prev, cur) => {
if (prev.includes(cur)) return prev
return [...prev, cur]
}, [])
}
]
}, [])
.sort((a, b) => a.blastSequence - b.blastSequence)
return [seniorBlast, juniorBlast]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment