| var _includes = | |
| /*#__PURE__*/ | |
| require("./internal/_includes"); | |
| var _curry2 = | |
| /*#__PURE__*/ | |
| require("./internal/_curry2"); | |
| var _filter = | |
| /*#__PURE__*/ | |
| require("./internal/_filter"); | |
| var flip = | |
| /*#__PURE__*/ | |
| require("./flip"); | |
| var uniq = | |
| /*#__PURE__*/ | |
| require("./uniq"); | |
| /** | |
| * Combines two lists into a set (i.e. no duplicates) composed of those | |
| * elements common to both lists. | |
| * | |
| * @func | |
| * @memberOf R | |
| * @since v0.1.0 | |
| * @category Relation | |
| * @sig [*] -> [*] -> [*] | |
| * @param {Array} list1 The first list. | |
| * @param {Array} list2 The second list. | |
| * @return {Array} The list of elements found in both `list1` and `list2`. | |
| * @see R.innerJoin | |
| * @example | |
| * | |
| * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3] | |
| */ | |
| var intersection = | |
| /*#__PURE__*/ | |
| _curry2(function intersection(list1, list2) { | |
| var lookupList, filteredList; | |
| if (list1.length > list2.length) { | |
| lookupList = list1; | |
| filteredList = list2; | |
| } else { | |
| lookupList = list2; | |
| filteredList = list1; | |
| } | |
| return uniq(_filter(flip(_includes)(lookupList), filteredList)); | |
| }); | |
| module.exports = intersection; |