快速深度平等
与 ES6 映射, Set 和 Typed 阵列支持等同的最快深度.
安装
npm install fast-deep-equal
特征
- ES5 兼容
- 在节点.js(8+)和浏览器(IE9+)中工作
- 按值检查日期和RegExp对象的等值.
ES6 等值(require('fast-deep-equal/es6')也支持:
- 地图
- 设定
- 已打入数组
使用量
无害环境管理(现代环境)
import equal from 'fast-deep-equal';
console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true
普通JS( 网络环境)
const equal = require('fast-deep-equal');
console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true
支持 ES6 映射、 设定和类型数组使用平等 :
// ESM
import equal from 'fast-deep-equal/es6';
// CommonJS
const equal = require('fast-deep-equal/es6');
console.log(equal(new Int16Array([1, 2]), new Int16Array([1, 2]))); // true
用回放( 避免回放元素的倒转) 所有人 包含循环引用的属性,当 比较各项要素 - 从 反应-快速比较:
// ESM
import equal from 'fast-deep-equal/react';
import es6Equal from 'fast-deep-equal/es6/react';
// CommonJS
const equal = require('fast-deep-equal/react');
const es6Equal = require('fast-deep-equal/es6/react');
业绩基准
节点.js v 12. 6.0:
fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled)
fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled)
fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled)
nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled)
shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled)
underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled)
lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled)
deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled)
deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled)
ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled)
util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled)
assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled)
The fastest is fast-deep-equal
要运行基准(需要节点.js 6+):
npm run benchmark
请注意:该基准与现有测试案例相对应。 要为您的应用程序选择最能表现的库,建议以您的数据为基准,不要期望该基准反映您的应用程序的性能差异.
企业支助
快速- 深度- 平等软件包是 Tidelift 企业订阅 - 除了软件维护者提供的支助外,它还为开源软件用户提供集中的商业支助.
安全联络
请使用 电梯安全联络。 。 。 . Tidelift将协调固定和披露。 请不要通过 GitHub 问题报告安全弱点 .