}
function intersect(a, b) {
- let aSet = new Set(a);
- let bSet = new Set(b);
- let intersection = new Set(
- [...aSet].filter(x => bSet.has(x))
- );
-
- return Array.from(intersection);
+ let set;
+ let list;
+ if (a.length < b.length) {
+ set = new Set(a);
+ list = b;
+ } else {
+ set = new Set(b);
+ list = a;
+ }
+ return Array.from(new Set(list.filter(x => set.has(x))));
}
export { getData, getSanitizedData, intersect };
expect(search('polo').map(trimEmojis)).to.deep.equal(expected);
expect(emojiIndex.search('polo').map(trimEmojis)).to.deep.equal(expected);
});
+
+ it('can search for thinking_face', () => {
+ let expected = [ { id: 'thinking_face', unified: '1f914', native: '🤔' } ];
+ expect(search('thinking_fac').map(trimEmojis)).to.deep.equal(expected);
+ // this is currently broken in emoji-mart
+ // expect(emojiIndex.search('thinking_fac').map(trimEmojis)).to.deep.equal(expected);
+ });
});