[英]How to diff two immutable objects
例:
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());
通常人類可以非常快地看到差異,因此他們確實不同的知識通常是足夠的: Immutable.is()比較兩個集合並告訴你它們何時不包含相同的元素。
如果這還不夠,請使用像npm包deep-diff這樣的東西:
const diff = require('deep-diff').diff;
var differences = diff(a.toJS(), b.toJS());
copnsole.log('diff', differences);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.