var subSet = function(arr1, arr2) {
var set1 = new Set(arr1);
var set2 = new Set(arr2);
var subset = [];
for (let item of set1) {
if (!set2.has(item)) {
subset.push(item);
}
}
return subset;
};
其次,常规办法,不负责去重:
var subSet = function(arr1, arr2) {
var len = arr1.length;
var arr = [];
while (len--) {
if (arr2.indexOf(arr1[len]) < 0) {
arr.push(arr1[len]);
}
}
return arr;
};
这个或许对你有用:
参考:开开心心做几道JavaScript机试题 - 02
首先考虑到的是 ES6 的 Set 来处理,这是真正按照数学上的集合来进行的,不会有重复元素:
其次,常规办法,不负责去重:
看看这个能不能符合你的需求
计算 集合 a-b:
代码解释
补充说明:
Array.prototype.filter
循环数组的每个元素并计算如果返回
true
,则将元素加入到返回的集合中如果返回
false
,则跳过Array.prototype.every
循环数组的每个元素并计算如果所有计算结果都为
true
,则返回true
否则返回
false