Files
lodash/internal/baseMatchesProperty.js
2015-03-24 22:52:48 -07:00

27 lines
784 B
JavaScript

import baseIsEqual from './baseIsEqual';
import isStrictComparable from './isStrictComparable';
import toObject from './toObject';
/**
* The base implementation of `_.matchesProperty` which does not coerce `key`
* to a string.
*
* @private
* @param {string} key The key of the property to get.
* @param {*} value The value to compare.
* @returns {Function} Returns the new function.
*/
function baseMatchesProperty(key, value) {
if (isStrictComparable(value)) {
return function(object) {
return object != null && object[key] === value &&
(typeof value != 'undefined' || (key in toObject(object)));
};
}
return function(object) {
return object != null && baseIsEqual(value, object[key], null, true);
};
}
export default baseMatchesProperty;