lazy-concat
v1.0.2
Published
Lazily concat two arrays and exclude duplicate items at the joint, especially for sequential arrays.
Downloads
587
Maintainers
Readme
lazy-concat
Lazily concat two arrays and exclude duplicate items at the joint, especially for sequential arrays.
Install
$ npm install lazy-concat
Usage
import concat from 'lazy-concat'
concat([1, 2, 3], [2, 3, 9], 9, 10)
// 2 of the second array matches the second position of the first array
// concat([1, 2, 3], [2, 3, 9]) -> [1, 2, 3, 9]
// 9 matches the last item of the previously concat item
// -> [1, 2, 3, 9]
// 10 does not match,
// so the result is [1, 2, 3, 9, 10]
const concat2 = concat.factory({
equal: (a, b) => a.i = b.i
})
concat2([{i: 1}, {i: 2}], [{i: 2}, {i: 3}])
// [{i: 1}, {i: 2}, {i: 3}]
concat([1, 2, 3], [1, 9])
// 1 of the second array matches the first item of the first array,
// but the match is too deep
// which is deeper than the length of the second array.
// So the match will be rejected.
// And the result is `[1, 2, 3, 1, 9]`
concat(null, [1, 2]) // it will throw
concat(...items)
- items
Array<any>
the first item should not benull
orundefined
, or it will throw an error.
Returns Array
concat.factory({equal})
- equal
Function
the method to match items, by default:
const equal = (a, b) => a === b
Returns Function
the configured concat
function.
License
MIT