mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-06 01:47:48 +00:00
Bump to v3.7.0.
This commit is contained in:
@@ -1,25 +1,45 @@
|
||||
var baseIsEqual = require('./baseIsEqual'),
|
||||
var baseGet = require('./baseGet'),
|
||||
baseIsEqual = require('./baseIsEqual'),
|
||||
baseSlice = require('./baseSlice'),
|
||||
isArray = require('../lang/isArray'),
|
||||
isKey = require('./isKey'),
|
||||
isStrictComparable = require('./isStrictComparable'),
|
||||
toObject = require('./toObject');
|
||||
last = require('../array/last'),
|
||||
toObject = require('./toObject'),
|
||||
toPath = require('./toPath');
|
||||
|
||||
/**
|
||||
* The base implementation of `_.matchesProperty` which does not coerce `key`
|
||||
* to a string.
|
||||
* The base implementation of `_.matchesProperty` which does not which does
|
||||
* not clone `value`.
|
||||
*
|
||||
* @private
|
||||
* @param {string} key The key of the property to get.
|
||||
* @param {string} path The path 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)));
|
||||
};
|
||||
}
|
||||
function baseMatchesProperty(path, value) {
|
||||
var isArr = isArray(path),
|
||||
isCommon = isKey(path) && isStrictComparable(value),
|
||||
pathKey = (path + '');
|
||||
|
||||
path = toPath(path);
|
||||
return function(object) {
|
||||
return object != null && baseIsEqual(value, object[key], null, true);
|
||||
if (object == null) {
|
||||
return false;
|
||||
}
|
||||
var key = pathKey;
|
||||
object = toObject(object);
|
||||
if ((isArr || !isCommon) && !(key in object)) {
|
||||
object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
|
||||
if (object == null) {
|
||||
return false;
|
||||
}
|
||||
key = last(path);
|
||||
object = toObject(object);
|
||||
}
|
||||
return object[key] === value
|
||||
? (value !== undefined || (key in object))
|
||||
: baseIsEqual(value, object[key], null, true);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user