MicroDiff微型对象/数组比较库
Microdiff 是一个小型(目前<1kb)、快速、零依赖对象和数组比较库。它比大多数其他深度比较库要快得多,并且具有完整的 TypeScript 支持。
特征
- 速度是其他对象差异库的两倍多
- 极轻,<1kb
- 支持 Deno、Node、Web 甚至 Service Worker,带有内置的 Typescript 类型
- 容易使用,只有一个
diff()
功能 - 完全支持
new Date()
和new RegExp()
这样的对象
开始
先安装 Microdiff
npm i microdiff
如果你用的是 Deno,可以从 https://deno.land/x/microdiff@VERSION/index.ts 导入,记得将 @VERSION 改成你想要的版本。
安装完之后,只需导入 Microdiff ,并在两个对象上运行它。
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,可以像这样导入:
const diff = require("microdiff").default;
有三种不同类型的更改:CREATE
、REMOVE
、 和CHANGE
,path
属性给出了新对象(在 REMOVE
情况下为旧对象)中的属性路径。数组中的每个元素都是下一层属性的键,直到属性被更改为止。 value
属性存在于 CREATE
和 CHANGE
类型中,包含添加/更改属性的值。
评论