Find the differences between two arrays and their positions
npm install array-differences
Find the differences between two arrays and their positions.
npm install array-differences --save
or
yarn add array-differences
``js
import { diffArray } from 'array-differences'
const input = [0, 1, 1, 4, 1, 1]
const output = [111, 1, 112, 1, 4, 1]
const diff = diffArray(input, output)
--> [['updated', 0, 111], ['created', 2, 112], ['deleted', 5]]
`
Using a custom comparison function:
`js
const diff = diffArray(
[{ name: 'John' }, { name: 'Marie' }],
[{ name: 'John' }, { name: 'Marie' }, { name: 'Chloe' }],
(a, b) => a.name === b.name
)
--> [['created', 2, { name: 'Chloe' }]]
`
You can recontruct the second array by iterating over the differences on the first array or using the utility:
`js
import { reconstructArray } from 'array-differences'
const reconstructed = reconstructArray(input, diff) // builds the output
// You can reconstruct in place:
reconstructArray(input, diff, true) // modifies input to recreate output from diff
`
The algorythm does not support arrays containing undefined values. Please replace your undefined` values with a placeholder before applying it.
Entry one is length m,
Entry two is length n,
Perfomance is m m n.
Therefore, it works best on smaller first arrays or if growing an array. Performance is best when differences indexes are close to one another in the array.
MIT