php简述一下并集交集差集,总结了一下js中的差集、交集、并集
前言
總結了一下有關于數組的差集、交集、并集的方法;
es6的方法實現
去重
/**
* 簡單的數組去重
* @param {Array} a
*/
const uniquelize = function(a) {
if (a.constructor !== Array) {
throw TypeError("請傳入數組類型");
}
return Array.from(new Set(a));
};
并集
/**
* 簡單數組的并集
* @param {Array} a
* @param {Array} b
*/
const getUnion = function(a,b){
if(a.constructor === Array && b.constructor === Array){
let set1 = new Set(a);
let set2 = new Set(b);
return Array.from(new Set([...set1,...set2]));
}
return null;
}
交集
/**
* 簡單數組的交集
* @param {Array} a
* @param {Array} b
*/
const getIntersect = function(a,b){
if(a.constructor === Array && b.constructor === Array){
let set1 = new Set(a);
let set2 = new Set(b);
return Array.from(new Set([...set1].filter( x => set2.has(x))));
}
return null;
}
差集
/**
* 簡單數組的差集
* @param {Array} a
* @param {Array} b
*/
const getDifference = function(a,b){
if(a.constructor === Array && b.constructor === Array){
let set1 = new Set(a);
let set2 = new Set(b);
return Array.from(new Set([...set1].filter(x => !set2.has(x))));
}
return null;
}
es5的方法實現
去重
/**
* 簡單的數組去重
* @param {Array} a
*/
var uniquelize = function(a) {
if (a.constructor !== Array) {
throw TypeError("請傳入數組類型");
}
var obj = {},
arr = [];
for (var i = 0, j = a.length; i < j; i++) {
if (!obj[a[i]]) {
obj[a[i]] = 1;
arr.push(a[i]);
}
}
return arr;
};
交集
/**
* 簡單數組的交集
*/
var getIntersect = function(){
var arr = new Array();
var obj = new Object();
var arguLen = arguments.length;
for(var i = 0; i
if(arguments[i].constructor !== Array){
throw TypeError("請都傳入數組類型");
}
for(var j = 0,length = arguments[i].length;j
var item = arguments[i][j];
if(!obj[item]){
obj[item] = 1;
}else{
obj[item]++;
if(obj[item]===arguLen){
arr.push(item);
}
}
}
}
return arr;
}
并集
/**
* 簡單數組的并集
*/
var getUnion = function(){
var arr = new Array();
var obj = new Object();
var arguLen = arguments.length;
for(var i = 0; i
if(arguments[i].constructor !== Array){
throw TypeError("請都傳入數組類型");
}
for(var j = 0,length = arguments[i].length;j
var item = arguments[i][j];
if(!obj[item]){
obj[item] = 1;
arr.push(item);
}else{
//統計一下出現了多少次
obj[item]++;
}
}
}
return arr;
}
差集
/**
* 簡單數組的差集
*/
var getDifference = function(){
var arr = new Array();
var obj = new Object();
var arguLen = arguments.length;
for(var i = 0; i
if(arguments[i].constructor !== Array){
throw TypeError("請都傳入數組類型");
}
for(var j = 0,length = arguments[i].length;j
var item = arguments[i][j];
if(!obj[item]){
obj[item] = 1;
arr.push(item);
}else{
obj[item]++;
var index = arr.indexOf(item);
//存在就刪除掉
if(index !== -1){
arr.splice(index,1);
}
}
}
}
return arr;
}
總結
以上是生活随笔為你收集整理的php简述一下并集交集差集,总结了一下js中的差集、交集、并集的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: php抽象的案例,php抽象类和抽象方法
- 下一篇: php mongodb 别名,PHP m
