JSFiddle - React, Tailwind, and code Playground
by Barney Carroll
CSS
html {
font: mono-space;
}
JavaScript
var full = [{a:'aa1',b:'bb1'},{a:'aa3',b:'bb2'},{a:'aa3',b:'bb3'},{a:'aa2',b:'bb3'}];
var some = [{a:'aa1',b:'bb1'},{a:'aa3',b:'bb3'}];
document.body.innerHTML = JSON.stringify(matchAndFlagWith('c', full, some));
function clone(obj){
return JSON.parse(JSON.stringify(obj));
}
function equal(){
for(var i = 1, l = arguments.length, x = JSON.stringify(arguments[0]); i < arguments.length; ++i){
if(x !== JSON.stringify(arguments[i])){
return false;
}
}
return true;
}
function matchAndFlagWith(flagLabel,aFull,aSome){
var aFlagged = clone(aFull);
for(var i1 = 0, l1 = aSome.length, oSome; oSome = aSome[i1], i1 < l1; ++i1){
for(var i2 = 0, l2 = aFlagged.length, oFlagged; oFlagged = aFlagged[i2], i2 < l2; ++i2){
if(equal(oFlagged,oSome)){
oFlagged[flagLabel] = true;
}
}
}
return aFlagged;
}