JSFiddle - React, Tailwind, and code Playground
JavaScript
var arr = [{
a: 1,
b: 2,
c: 3,
d: 4,
e: 6
}, {
a: 2,
b: 3,
c: 5,
d: 7,
e: 5
}, {
a: 3,
b: 4,
c: 6,
d: 8,
e: 4
}, {
a: 4,
b: 5,
c: 3,
d: 9,
e: 1
}]
var obj = {
a: 4,
b: 5,
c: 3,
d: 9,
e: 1
};
function getKeys(obj) {
return Object.keys(obj);
}
function getVals(keys, obj) {
return keys.map(function (el) {
return obj[el];
});
}
function isMatch(arr1, arr2) {
return arr1.length === arr2.length && arr1.every(function (el, i) {
return arr1[i] === arr2[i];
});
}
function find(arr, obj) {
var oKeys = getKeys(obj);
var oVals = getVals(oKeys, obj);
return arr.filter(function (c) {
var cKeys = getKeys(c);
var cVals = getVals(cKeys, c);
return isMatch(oKeys, cKeys) && isMatch(oVals, cVals);
})[0] || 'no match';
}
var result = find(arr, obj);
console.log(result)