UNPKG

644 BJavaScriptView Raw
1export function valueMatchesCriteria(value, criteria) {
2 if (value == null) {
3 return value === criteria;
4 }
5 else if (Array.isArray(value)) {
6 return Array.isArray(criteria) && value.every((val, index) => valueMatchesCriteria(val, criteria[index]));
7 }
8 else if (typeof value === 'object') {
9 return (typeof criteria === 'object' &&
10 criteria &&
11 Object.keys(criteria).every(propertyName => valueMatchesCriteria(value[propertyName], criteria[propertyName])));
12 }
13 else if (criteria instanceof RegExp) {
14 return criteria.test(value);
15 }
16 return value === criteria;
17}