JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>
JavaScript
const regular = [{
id: 1,
name: 'Iron man'
},
{
id: 2,
name: 'Captain America'
},
{
id: 3,
name: 'Hulk'
},
{
id: 4,
name: 'Spiderman'
},
{
id: 5,
name: 'Thor'
}
];
const selected = [{
id: 1,
name: 'Iron man'
},
{
id: 4,
name: 'Spiderman'
},
{
id: 5,
name: 'Thor'
}
];
console.time(1);
const markedPlayers = regular.filter(player => {
return selected.find(marked => {
return player.name === marked.name
});
});
console.log(markedPlayers);
console.timeEnd(1);
console.time(2);
console.log(_.intersectionBy(regular, selected, 'name'))
console.timeEnd(2);
console.time(3);
let result = [];
for (let i = 0, l1 = regular.length; i < l1; i++) {
for (let j = 0, l2 = selected.length; j < l2; j++) {
if(regular[i].name === selected[j].name) {
result.push(selected[j]);
}
}
}
console.log(result);
console.timeEnd(3);