MicroDiff微型对象/数组比较库

联合创作 · 2023-09-28 10:02

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;

有三种不同类型的更改:CREATEREMOVE、 和CHANGE,path属性给出了新对象(在 REMOVE情况下为旧对象)中的属性路径。数组中的每个元素都是下一层属性的键,直到属性被更改为止 value 属性存在于 CREATECHANGE类型中,包含添加/更改属性的值。

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报