fast-deep-equal
最快的深度相等与ES6 Map, Set和类型化数组的支持。
安装
npm install fast-deep-equal
特性
- ES5兼容
- 在node.js(8+)和浏览器(IE9+)下工作
- 按值检查Date和RegExp对象是否相等。
ES6 = (require('fast-deep-equal/es6'))还支持:
- 地图
- 集
- 类型的数组
用法
var equal = require('fast-deep-equal');
console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true
要支持ES6 map、set和类型化数组相等,请使用:
var equal = require('fast-deep-equal/es6');
console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true
与React一起使用(避免遍历React元素的_owner 属性,该属性包含循环引用,并且在 比较借来的元素 react-fast-compare):
var equal = require('fast-deep-equal/react');
var equal = require('fast-deep-equal/es6/react');
性能基准测试
node . js v12.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
运行基准测试(需要node.js 6+):
npm run benchmark
请注意:这个基准测试运行在可用的测试用例上。要为您的应用程序选择性能最高的库,建议针对您的数据进行基准测试,不要期望该基准测试反映应用程序中的性能差异。
企业支持
快深等量包是其中的一部分 Tidelift企业订阅 -除了软件维护者提供的支持外,它还为开源软件用户提供集中的商业支持。
安全联系
要报告安全漏洞,请使用 Tidelift安全联系人。 Tidelift将协调修复和披露。请不要通过GitHub问题报告安全漏洞。