JSFiddle - React, Tailwind, and code Playground

JavaScript

function whatIsInAName(collection, source) {
 
var compareArr1=[];
var compareArr2=[];
var finArr=[];
var finArr2=[];
  compareArr1=Object.keys(source);
  for (i=0;i<collection.length;i++){
    var count=0;
    
  for (ii=0;ii<compareArr1.length;ii++){
  if (collection[i].hasOwnProperty(compareArr1[ii])===false){
count-=1;  
  }  
  }
    if (count===0) {
      finArr.push(collection[i]);
    }
  }
  
  for (iii=0;iii<finArr.length;iii++){
    var count1=0;
    
  for (iiii=0;iiii<compareArr1.length;iiii++){
  
      if (finArr[iii][compareArr1[iiii]] !== source[compareArr1[iiii]]){
 count1-=1;
    
    }
  }
  if (count1===0){finArr2.push(finArr[iii])}
  } 
    
  
  
  console.log(finArr2);
  }
whatIsInAName([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "b": 2 });