2.0.18 • Published 6 months ago
hyperdiff v2.0.18
hyperdiff
Find common, removed and added element between two collections.
Install
$ npm install hyperdiff --save
Usage
Using a flat Array
:
const diff = require('hyperdiff')
const result = diff(
[1, 2, 3, 4, 5, 6],
[1, 2, 4, 5, 6, 0, 9, 10]
)
console.log(result)
// {
// added: [ 0, 9, 10 ],
// removed: [ 3 ],
// common: [ 1, 2, 4, 5, 6 ]
// }
Using an Array
of Object
's (in this case you need to provide the unique id):
const diff = require('hyperdiff')
const result = diff(
[
{ id: 1, name: 'a' },
{ id: 2, name: 'b' },
{ id: 3, name: 'c' },
{ id: 4, name: 'd' },
{ id: 5, name: 'e' }
],
[
{ id: 1, name: 'a' },
{ id: 2, name: 'b' },
{ id: 7, name: 'e' }
],
'id'
)
console.log(result)
// {
// added: [ { id: 7, name: 'e' } ],
// removed: [ { id: 3, name: 'c' }, { id: 4, name: 'd' }, { id: 5, name: 'e' } ],
// common: [ { id: 1, name: 'a' }, { id: 2, name: 'b' } ]
// }
It's also support multiple properties as id or provide a function
.
Benchmark
❯ node bench.js
simpleArrayDiff*1000: 143.742ms
hyperDiff*1000: 80.234ms
simpleArrayDiff*1000: 143.405ms
hyperDiff*1000: 75.803ms
API
hyperdiff(orig, dist, ids)
orig
Required
Type: array
First array for be compared.
dist
Required
Type: array
Second array for be compared. Notes the results are modeled from the second array.
ids
Type: string
|array
|function
In the case that you provide an Array
of Object
's, you need to specify the key
's to be used as id
.
Related
- redis-diff - Perform a diff comparison backed by redis.
License
MIT © Kiko Beats.
2.0.18
6 months ago
2.0.17
7 months ago
2.0.15
8 months ago
2.0.16
8 months ago
2.0.14
1 year ago
2.0.13
2 years ago
2.0.11
2 years ago
2.0.12
2 years ago
2.0.9
2 years ago
2.0.10
2 years ago
2.0.8
3 years ago
2.0.7
4 years ago
2.0.6
4 years ago
2.0.5
6 years ago
2.0.4
6 years ago
2.0.3
7 years ago
2.0.2
7 years ago
2.0.1
7 years ago
2.0.0
7 years ago
1.0.0
7 years ago