当前位置: 首页 > news >正文

重庆简约型网站开发价格成都的设计院有哪些

重庆简约型网站开发价格,成都的设计院有哪些,个人网站免费域名获取,英文网站模板改成中文1.jsondiffpatch 简介 jsondiffpatch 是一个用于比较和生成 JSON 数据差异的 JavaScript 库。它可以将两个 JSON 对象进行比较#xff0c;并生成一个描述它们之间差异的 JSON 对象。这个差异对象可以用于多种用途#xff0c;例如#xff1a; 生成可视化的差异报告应用差异…1.jsondiffpatch 简介 jsondiffpatch 是一个用于比较和生成 JSON 数据差异的 JavaScript 库。它可以将两个 JSON 对象进行比较并生成一个描述它们之间差异的 JSON 对象。这个差异对象可以用于多种用途例如 生成可视化的差异报告应用差异到另一个 JSON 对象从而完成更新将差异对象转换为文本格式以便存储或传输 jsondiffpatch 支持多种比较选项例如忽略某些属性、比较数组时使用不同的算法等。它还提供了许多自定义选项以便根据您的需求进行配置。jsondiffpatch 可以在浏览器和 Node.js 环境中使用。可以在项目地址找到源码根据自己的需求进行扩展。 2.jsondiffpatch的使用演示 首先安装 jsondiffpatch 库可以使用 npm 或 yarn 等包管理工具进行安装也可以直接在 HTML 页面中引入 jsondiffpatch.js 文件。文件可以在附录中提供的github地址中找到。 接着创建 jsondiffpatch 实例可以使用 jsondiffpatch.create() 方法创建一个 jsondiffpatch 实例。 比较两个 JSON 对象使用 jsondiffpatch 实例的 diff() 方法比较两个 JSON 对象生成一个描述它们之间差异的 JSON 对象。 应用差异到另一个 JSON 对象使用 jsondiffpatch 实例的 patch() 方法将差异对象应用到另一个 JSON 对象以更新它。 下面是一个样例 // 引入 jsondiffpatch 库 const jsondiffpatch require(jsondiffpatch);// 创建 jsondiffpatch 实例 const diffpatcher jsondiffpatch.create();// 定义两个 JSON 对象 const obj1 { name: Alice, age: 30 }; const obj2 { name: Bob, age: 35 };// 比较两个 JSON 对象生成差异对象 const diff diffpatcher.diff(obj1, obj2);// 应用差异对象到另一个 JSON 对象更新它 const patchedObj diffpatcher.patch(obj1, diff);console.log(patchedObj); // 输出 { name: Bob, age: 35 }3.diff结果的可视化 jsondiffpatch 生成的差异对象是一个 JSON 对象其中包含了被比较的两个 JSON 对象之间的差异信息。如果您想将差异对象可视化展示出来可以使用jsondiffpatch-formatters这个工具。 jsondiffpatch-formatters是jsondiffpatch的扩展库提供了多种差异对象的可视化展示格式包括 HTML、Markdown、Console 等格式。我们可以使用 jsondiffpatch-formatters 的 html.format() 方法将差异对象转换为 HTML 格式的字符串然后将其插入到页面中展示。 例 const diff diffpatcher.diff(obj1, obj2); const html jsondiffpatch.formatters.html.format(diff, obj1); document.getElementById(diff-container).innerHTML html;可以参看可视化效果展示来体验效果。 4.diff功能的扩展 jsondiffpatch 中可以使用插件增加扩展功能可以用于增强 jsondiffpatch 的比较和生成差异对象的能力。以下是一些常用的插件及其功能 diff-arrays这个插件可以使 jsondiffpatch 在比较数组时按照元素的值而不是索引进行比较。这样可以避免因为数组中元素的顺序不同而导致的不必要的差异。 annotated这个插件可以在生成的差异对象中为每个差异节点添加注释信息包括节点的类型、路径、值等。这样可以方便地了解差异对象的结构和含义。 delta这个插件可以将差异对象转换为一种更紧凑的格式称为“增量格式”delta format。增量格式可以减少差异对象的大小提高传输效率。 patch-console这个插件可以将差异对象打印到控制台中以便调试和测试。 除了上述插件外jsondiffpatch 还提供了一些其他的插件例如 reverse、clone、trivial 等。我们可以根据自己的需求选择适合的插件进行使用。但插件可能会增加 jsondiffpatch 的运行时间和内存消耗因此在使用插件时需要进行测试。 下面是一个数组比较的演示 // 引入 jsondiffpatch 库和 diff-arrays 插件 const jsondiffpatch require(jsondiffpatch); const diffArrays require(jsondiffpatch/src/diffpatcher-arrays);// 创建 jsondiffpatch 实例并添加 diff-arrays 插件 const diffpatcher jsondiffpatch.create({arrays: {detectMove: true,includeValueOnMove: true,}, }).use(diffArrays);// 定义两个数组 const arr1 [1, 2, 3]; const arr2 [3, 2, 1];// 比较两个数组生成差异对象 const diff diffpatcher.diff(arr1, arr2);console.log(diff); // 输出 { _t: a, ... }在这个例子中首先引入了 jsondiffpatch 库和 diff-arrays 插件。指定了 diff-arrays 插件的配置选项。使用 use() 方法将 diff-arrays 插件添加到 jsondiffpatch 实例中。 此外还可以对复杂对象的比较进行自定义实现个性化比较实现不同业务的诉求。下面的例子中演示了这种场景的用法。方法具体含义可以参考github主页学习。 // 自定义比较方法 function myDiff(obj1, obj2, path) {// 如果 obj1 和 obj2 是字符串类型并且都以 $ 开头则比较它们的长度if (typeof obj1 string typeof obj2 string obj1.startsWith($) obj2.startsWith($)) {const len1 parseInt(obj1.substring(1));const len2 parseInt(obj2.substring(1));if (len1 ! len2) {return [{ op: replace, path, value: obj2 }];}}// 否则使用默认的比较方法return jsondiffpatch.diff(obj1, obj2, path); }// 创建 jsondiffpatch 实例并设置自定义比较方法 const diffpatcher jsondiffpatch.create({objectHash: (obj) obj.id,diff: myDiff, });// 定义两个对象 const obj1 { id: 1, name: Alice, age: 30 }; const obj2 { id: 1, name: Bob, age: 35 };// 比较两个对象生成差异对象 const diff diffpatcher.diff(obj1, obj2);console.log(diff); // 输出 [{ op: replace, path: /name, value: Bob }]5.总结 基于这个工具我们可以实现可视化比较。当有定制化比较诉求是通过扩展函数实现定制化功能最终可以搭建起我们的diff工具服务。 参考资料 [1]jsondiffpatch源码https://github.com/benjamine/jsondiffpatch [2]可视化效果展示https://benjamine.github.io/jsondiffpatch/demo/index.html [3]插件https://github.com/benjamine/jsondiffpatch/blob/master/docs/plugins.md [4]diff格式说明https://github.com/benjamine/jsondiffpatch/blob/master/docs/deltas.md
http://wiki.neutronadmin.com/news/250298/

相关文章:

  • 网站建设报价表格wordpress免费的可视化编辑
  • 福建省建设环卫协会网站汕头东莞网站建设
  • 网站内容页相关性怎么做英文wordpress建站
  • 织梦个人博客网站源码珠海有什么好的网站推广公司
  • 佛山网站优化推广方案网站推广常用方法有哪些
  • 建设网站工作室seo入门培训课程
  • 微网站免费大连精美网站制作
  • 百度怎么搜索到自己的网站做新网站 备案证明交接
  • 网站建设验收装修网页设计网站
  • 西安做网站的公司电话永久在线观看电影网址
  • 制作公司网站价格wordpress 商业网站
  • 汽车配件外贸网站火车票网站开发
  • 南宁建设银行官网招聘网站飞天侠调用wordpress
  • 房屋租赁网站开发需求分析网站建设会计分录
  • 怎么做网站不被发现内蒙网站开发
  • 企业网站模板带后台企业内部管理软件
  • 中国做网站推广哪家好365房产南京网站
  • 大自然的网站设计易网网站
  • 个人网站设计的意义网络营销的方式有几种
  • 网站管理平台扩展插件微信文章导入wordpress
  • 石家庄做外贸的网站推广公司注册代理费
  • wordpress 网站很卡更改wordpress登录地址
  • 烟台网站优化2022年国内重大新闻
  • 企业标准型手机网站网站顶部地图代码怎么做的
  • 网站建设策划公司地址合肥网站优化搜索
  • 各行各业网站建设服务周到做商品网站需要营业执照
  • 营销网站建设网站设计wordpress 重新安装
  • 怎么在另外一台电脑的浏览器打开自己做的网站地址栏输入什么qq上传空间wordpress
  • 素材网站视频网站建设话语
  • 广州制作网站公司电话网站建设和运行费用