Files
number_zj/20220330_Vote/Ewide.Web.Entry/wwwroot/lib/xe-utils/isMatch.js
毛财君 197b38ca6f 1
2023-07-06 17:37:33 +08:00

33 lines
791 B
JavaScript

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