just
just copied to clipboard
just-intersect is mixing array and strings
const intersect = require('just-intersect')
intersect([1, "2", 5, 6], [2, 3, 5, 6]); // ["2", 5, 6]
lodash.intersection
gives [5, 6]
on such cases.
Looks like the issue is that the current implementation creates objects where the items of the arrays are the properties, which causes the behavior you explained since items are casted to strings (https://github.com/angus-c/just/blob/master/packages/array-intersect/index.mjs#L35); e.g. [2, 3, 5, 6]
becomes { '2': true, '3': true, '5': true, '6': true }
, so then checking if "2"
is a property of that object results in that issue.
Yeah, there's some workaround and I'm using a set-based method which is O(n)
. Just curious if the library author is willing to fix this, as it's a breaking change.
The author hasn't been active since last May unfortunately. I'm also eagerly awaiting their return ahah.