如何计算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]
极客教程