js实现数组去重、交集、差集、并集
var a = [1, 2, 3, 4, 5]; var b = [3, 4, 6, 7]; var c = [2, 8, 5, 0, 5, 2, 6, 7, 2]; //去重 function listRemoveRepeat(c) { var result = []; for (var i = 0; i < c.length; i++) { var flag = true; var temp = c[i]; for (var j = i+1; j < c.length; j++) { if (temp === c[j]) { flag = false; break; } } if (flag) { result.push(temp); } } return result; } //交集 function listIntersection(a, b) { var result = []; for (var i = 0; i < b.length; i++) { var temp = b[i]; for (var j = 0; j < a.length; j++) { if (temp === a[j]) { result.push(temp); break; } } } return result; } //差集:所有属于a且不属于b的元素组成的集合 function listDifference(a, b) { var clone = a.slice(0); for (var i = 0; i < b.length; i++) { var temp = b[i]; for (var j = 0; j < clone.length; j++) { if (temp === clone[j]) { clone.splice(j, 1); } } } return listRemoveRepeat(clone); } //并集 function listUnion(a, b) { return listRemoveRepeat(a.concat(b)); } console.log("去重", listRemoveRepeat(c)); console.log("交集", listIntersection(a, b)); console.log("差集", listDifference(a, b)); console.log("并集", listUnion(a, b));
结果如下:

另外,关于去重,还可以使用indexOf方法:
//去重 function listRemoveRepeat(c){ var result=[]; for (var i = 0; i < c.length; i++) { if(result.indexOf(c[i])==-1){ result.push(c[i]); } } return result; }

浙公网安备 33010602011771号