Files
lodash/_baseMatches.js
John-David Dalton bbd78fee4d Bump to v4.1.0.
2016-01-29 08:30:29 -08:00

31 lines
822 B
JavaScript

var baseIsMatch = require('./_baseIsMatch'),
getMatchData = require('./_getMatchData');
/**
* The base implementation of `_.matches` which doesn't clone `source`.
*
* @private
* @param {Object} source The object of property values to match.
* @returns {Function} Returns the new function.
*/
function baseMatches(source) {
var matchData = getMatchData(source);
if (matchData.length == 1 && matchData[0][2]) {
var key = matchData[0][0],
value = matchData[0][1];
return function(object) {
if (object == null) {
return false;
}
return object[key] === value &&
(value !== undefined || (key in Object(object)));
};
}
return function(object) {
return object === source || baseIsMatch(object, source, matchData);
};
}
module.exports = baseMatches;