You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict';
const internals = {};
module.exports = function (array1, array2, options = {}) {
if (!array1 || !array2) {
return (options.first ? null : []); }
const common = []; const hash = (Array.isArray(array1) ? new Set(array1) : array1); const found = new Set(); for (const value of array2) { if (internals.has(hash, value) && !found.has(value)) {
if (options.first) { return value; }
common.push(value); found.add(value); } }
return (options.first ? null : common); };
internals.has = function (ref, key) {
if (typeof ref.has === 'function') { return ref.has(key); }
return ref[key] !== undefined; };
|