有没有办法在Immutable中区分对象?
示例:
let a = Immutable.fromJS({ a: 10 });
let b = Immutable.fromJS({ b: 10 });
let d = Immutable.diff(a, b);
// { a: 10 }
console.log(d.toJS());
在测试以查看对象的不同之处时,这将非常有用。
它不必显示明确添加/删除的内容。我只想查看a
与b
不同的属性,以便我可以再次使它们相等。
例如我这样做:
console.log(a.toJS());
console.log(b.toJS());
并检查日志以查看与b的不同之处。
在其他想法中,它可能会在同一输出中显示added
和removed
属性。重点是看看它们不相等的地方。
所以它也可能是:
// { a: 10, b: 10 }
console.log(d.toJS());
或者也许:
// { added: { a: 10 }, removed: { b: 10 } }
// console.log(d.toJS());
答案 0 :(得分:0)
通常,一个人可以很快地看到差异,因此最常知道它们确实不同的地方是:Immutable.is()比较两个集合,并告诉您何时它们不包含相同的元素。
如果这还不够,请使用npm软件包deep-diff之类的东西:
const diff = require('deep-diff').diff;
var differences = diff(a.toJS(), b.toJS());
copnsole.log('diff', differences);