12345678910111213141516171819202122232425 |
- var helperEqualCompare = require('./helperEqualCompare')
- var helperDefaultCompare = require('./helperDefaultCompare')
- var isFunction = require('./isFunction')
- var isUndefined = require('./isUndefined')
- /**
- * 深度比较两个对象之间的值是否相等,使用自定义比较函数
- *
- * @param {Object} obj1 值1
- * @param {Object} obj2 值2
- * @param {Function} func 自定义函数
- * @return {Boolean}
- */
- function isEqualWith (obj1, obj2, func) {
- if (isFunction(func)) {
- return helperEqualCompare(obj1, obj2, function (v1, v2, key, obj1, obj2) {
- var result = func(v1, v2, key, obj1, obj2)
- return isUndefined(result) ? helperDefaultCompare(v1, v2) : !!result
- }, func)
- }
- return helperEqualCompare(obj1, obj2, helperDefaultCompare)
- }
- module.exports = isEqualWith
|