给定两个数组,编写一个函数来计算它们的交集。
    示例 1:

    1. 输入:nums1 = [1,2,2,1], nums2 = [2,2]
    2. 输出:[2]

    示例 2:

    1. 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    2. 输出:[9,4]

    说明:

    • 输出结果中的每个元素一定是唯一的。
    • 我们可以不考虑输出结果的顺序。

    解法1:set去重筛选

    1. var intersection = function (nums1, nums2) {
    2. const set1 = new Set(nums1);
    3. const set2 = new Set(nums2);
    4. const set = [...set1].filter(item => set2.has(item));
    5. return set;
    6. };

    解法2:

    1. intersection = function (nums1, nums2) {
    2. const longNum = nums1.length <= nums2.length ? nums2 : nums1;
    3. const shortNum = nums1.length > nums2.length ? nums2 : nums1;
    4. let value;
    5. let result = [];
    6. while ((value = shortNum.shift()) !== undefined) {
    7. const index1 = result.findIndex(item => item === value);
    8. const index2 = longNum.findIndex(item => item === value);
    9. if (index1 === -1 && index2 >= 0) {
    10. result.push(value);
    11. }
    12. }
    13. return result;
    14. }