@extra-object/is-entry
Version:
Checks if object has an entry.
35 lines (30 loc) • 640 B
JavaScript
;
/**
* Gives same value.
* @param v a value
* @returns v
*/
function id(v) {
return v;
}
/**
* Compares two values.
* @param a a value
* @param b another value
* @returns a<b: -ve, a=b: 0, a>b: +ve
*/
function cmp(a, b) {
return a < b ? -1 : (a > b ? 1 : 0);
}
/**
* Checks if object has an entry.
* @param x an object
* @param e entry?
* @param fc compare function (a, b)
* @param fm map function (v, k, x)
*/
function isEntry(x, e, fc = null, fm = null) {
var fc = fc || cmp, fm = fm || id, [k, v] = e;
return x.hasOwnProperty(k) && fc(fm(x[k], k, x), v) === 0;
}
module.exports = isEntry;