MicroDiff微型對(duì)象/數(shù)組比較庫
Microdiff 是一個(gè)小型(目前<1kb)、快速、零依賴對(duì)象和數(shù)組比較庫。它比大多數(shù)其他深度比較庫要快得多,并且具有完整的 TypeScript 支持。
特征
- 速度是其他對(duì)象差異庫的兩倍多
- 極輕,<1kb
- 支持 Deno、Node、Web 甚至 Service Worker,帶有內(nèi)置的 Typescript 類型
- 容易使用,只有一個(gè)
diff()功能 - 完全支持
new Date()和new RegExp()這樣的對(duì)象
開始
先安裝 Microdiff
npm i microdiff
如果你用的是 Deno,可以從 https://deno.land/x/microdiff@VERSION/index.ts 導(dǎo)入,記得將 @VERSION 改成你想要的版本。
安裝完之后,只需導(dǎo)入 Microdiff ,并在兩個(gè)對(duì)象上運(yùn)行它。
import diff from "microdiff"; const obj1 = { originalProperty: true, }; const obj2 = { originalProperty: true, newProperty: "new", }; console.log(diff(obj1, obj2)); // [{type: "CREATE", path: ["newProperty"], value: "new"}]
如果你在使用 CommonJS,可以像這樣導(dǎo)入:
const diff = require("microdiff").default;
有三種不同類型的更改:CREATE、REMOVE、 和CHANGE,path屬性給出了新對(duì)象(在 REMOVE情況下為舊對(duì)象)中的屬性路徑。數(shù)組中的每個(gè)元素都是下一層屬性的鍵,直到屬性被更改為止。 value 屬性存在于 CREATE和 CHANGE類型中,包含添加/更改屬性的值。
評(píng)論
圖片
表情
