1
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
var keys = require('./keys')
|
||||
var findIndexOf = require('./findIndexOf')
|
||||
var isEqual = require('./isEqual')
|
||||
|
||||
var some = require('./some')
|
||||
var includeArrays = require('./includeArrays')
|
||||
|
||||
/**
|
||||
* 判断属性中的键和值是否包含在对象中
|
||||
*
|
||||
* @param {Object/Array} obj 对象
|
||||
* @param {Object} source 值
|
||||
* @return {Boolean}
|
||||
*/
|
||||
function isMatch (obj, source) {
|
||||
var objKeys = keys(obj)
|
||||
var sourceKeys = keys(source)
|
||||
if (sourceKeys.length) {
|
||||
if (includeArrays(objKeys, sourceKeys)) {
|
||||
return some(sourceKeys, function (key2) {
|
||||
return findIndexOf(objKeys, function (key1) {
|
||||
return key1 === key2 && isEqual(obj[key1], source[key2])
|
||||
}) > -1
|
||||
})
|
||||
}
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
return isEqual(obj, source)
|
||||
}
|
||||
|
||||
module.exports = isMatch
|
||||
Reference in New Issue
Block a user