UNPKG

823 BJavaScriptView Raw
1var keys = require('./keys')
2var findIndexOf = require('./findIndexOf')
3var isEqual = require('./isEqual')
4
5var some = require('./some')
6var includeArrays = require('./includeArrays')
7
8/**
9 * 判断属性中的键和值是否包含在对象中
10 *
11 * @param {Object/Array} obj 对象
12 * @param {Object} source 值
13 * @return {Boolean}
14 */
15function isMatch (obj, source) {
16 var objKeys = keys(obj)
17 var sourceKeys = keys(source)
18 if (sourceKeys.length) {
19 if (includeArrays(objKeys, sourceKeys)) {
20 return some(sourceKeys, function (key2) {
21 return findIndexOf(objKeys, function (key1) {
22 return key1 === key2 && isEqual(obj[key1], source[key2])
23 }) > -1
24 })
25 }
26 } else {
27 return true
28 }
29 return isEqual(obj, source)
30}
31
32module.exports = isMatch