MicroDiff 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
MicroDiff 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
MicroDiff 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 JavaScript TypeScript
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开源组织
地区 不详
投 递 者 罗奇奇
适用人群 未知
收录时间 2021-11-09

软件简介

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类型中,包含添加/更改属性的值。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
9 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部