@consensys-software/permissioning-smart-contracts
Version:
Smart contracts and dapp implementing EEA spec onchain permissioning
37 lines (33 loc) • 1.04 kB
text/typescript
export const areArrayEqual = (arr1: Array<any>, arr2: Array<any>, searchingKeys: Array<string>) => {
if (arr1.length !== arr2.length) {
return false;
}
let index = 0;
let isSimilar = true;
while (isSimilar && index < arr1.length) {
if (searchingKeys) {
isSimilar = searchingKeys.reduce<boolean>(
(acc, key) => acc && arr1[index][key] === arr2[index][key], // eslint-disable-line
true
);
} else {
isSimilar = arr1[index] === arr2[index];
}
index++;
}
return isSimilar;
};
export const arrayInclude = (arr: Array<any>, searchingObject: Object) =>
arr.some(element => {
return Object.entries(searchingObject).reduce<boolean>((acc, [key, value]) => acc && element[key] === value, true);
});
export const areMapEqual = (map1: Map<any, any>, map2: Map<any, any>) => {
if (map1.size !== map2.size) {
return false;
}
let isSimilar = true;
map1.forEach((value, key) => {
isSimilar = map2.has(key) && map2.get(key) === value;
});
return isSimilar;
};