0_0*_*0_0 1 javascript jquery underscore.js
所以我有两个 JSON 对象,我试图使用下划线 js 找出它们之间的区别。但是由于某种原因,它返回了整个对象而不是仅仅返回差异。我的目标是恢复模式,因为它是唯一不同的东西。
var a = {
"name":"donor",
"label":"Donor Data File (donor)",
"pattern":"^donor(\\.[a-zA-Z0-9]+)?\\.txt(?:\\.gz|\\.bz2)?$"
};
var b = {
"name":"donor",
"label":"Donor Data File (donor)",
"pattern":"^donor(\\.[a-zA-Z0-9]+)?\\.txt(?:\\.gz)?$"
};
console.log(_.difference(a,b));
Run Code Online (Sandbox Code Playgroud)
我不理解_.difference正确的用例吗?如果需要,这里有一个JSFiddle。
/**
* Deep diff between two object, using underscore
* @param {Object} object Object compared
* @param {Object} base Object to compare with
* @return {Object} Return a new object who represent the diff
*/
const difference = (object, base) => {
const changes = (object, base) => (
_.pick(
_.mapObject(object, (value, key) => (
(!_.isEqual(value, base[key])) ?
((_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value) :
null
)),
(value) => (value !== null)
)
);
return changes(object, base);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3380 次 |
| 最近记录: |