如何计算JavaScript数组的并集

如何计算JavaScript数组的并集

给定包含数组元素的两个数组,并且任务是使用JavaScript计算两个数组的并集。

下面讨论了解决这个问题的方法:

  • 使用扩展运算符和set
  • 使用push()方法
  • 使用filter()和concat()方法
  • 使用Underscore.js _.union()函数

方法1:使用扩展运算符和set

  • 声明名为A和B的两个数组。
  • 使用扩展运算符将两个数组连接起来,并将它们存储到set中。
  • 由于set会移除重复的元素。
  • 在移除重复元素后,它将显示数组元素的并集。

示例: 此示例演示了使用扩展运算符的方法。

let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
 
function GFG_Fun() {
    let union = [...new Set([...A, ...B])];
    console.log("Union is: " + union);
}
 
GFG_Fun();

输出

Union is: 7,2,6,4,5,1,9


方法2

  • 在这种方法中,所有元素都存储在一个JavaScript对象中。
  • 将元素存储在JavaScript对象中将会删除重复的元素。
  • 最后,通过使用push()方法将所有元素推送到JavaScript数组中。

示例: 该示例实现了上述方法。

let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
 
function computeUnion(a, b) {
    let object = {};
 
    for (let i = a.length - 1; i >= 0; --i)
        object[a[i]] = a[i];
 
    for (let i = b.length - 1; i >= 0; --i)
        object[b[i]] = b[i];
 
    let ret = [];
 
    for (let i in object) {
        if (object.hasOwnProperty(i))
            ret.push(object[i]);
    }
 
    return ret;
}
 
console.log(computeUnion(A, B));

输出

[
  1, 2, 4, 5,
  6, 7, 9
]

方法3:使用filter()和concat()方法

JavaScript Array concat() 方法用于合并两个或多个数组,并且filter()方法用于从给定数组中创建一个新数组,该新数组仅包含满足参数方法所设置的条件的元素

示例:

let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
function GFG_Fun() {
    let newArr =A.concat(B);
    newArr.sort();
    let unionArr = newArr.filter((value, index) => 
                   newArr.indexOf(value) === index);
    console.log(unionArr);
}
 
GFG_Fun();

输出

[
  1, 2, 4, 5,
  6, 7, 9
]

方法4: 使用Underscore.js的_.union()函数

_.union()函数 用于获取n个数组,并返回一个包含所有这些数组中唯一项的新数组(所有数组的并集)。

const _ = require('underscore')
let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
function GFG_Fun() {
    let union = _.union(A,B)
    console.log("Union is: " + union);
}
GFG_Fun();

输出:

[1,2,4,5,6,7,9]  

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程