//-------两个数组取交集的方法---------
Array.ExistsSameValues = function(a1, a2) {
var exists = false;
if(a1 instanceof Array && a2 instanceof Array)
{
for (var i=0,iLen=a1.length; i<iLen; i++)
{
for (var j=0,jLen=a2.length; j<jLen; j++)
{
if (a1[i]===a2[j])
{
return true;
}
}
}
}
return exists;
};
//使用说明,a集合为全集 b为子集 例如a=[1,2,3,4,5] b=[1,2,3]
function getNotSame(a,b){
var c = [];
var tmp = a.concat(b);
var o={};
for(var i = 0; i<tmp.length; i++) (tmp[i] in o) ? o[tmp[i]] ++ :o[tmp[i]] = 1;
for(x in o) if(o[x] == 1) c.push(x);
return c;
}
/**
* 求一个数组中最大的元素值
* @param tmp Array
* @returns {max}
*/
function getMax(tmp) {
var max = tmp[0];
for (var i = 1; i < tmp.length; i++) {
if (max < tmp[i]) {
max = tmp[i];
}
}
return max;
}
//判断a集合是否真包含集合b
function checkAcontainB(a, b) {
var ai = 0, bi = 0;
// 集合a、b交集
var c = new Array();
while (ai < a.length && bi < b.length) {
if (a[ai] < b[bi]) {
ai++;
} else if (a[ai] > b[bi]) {
bi++;
} else /* they're equal */{
c.push(a[ai]);
ai++;
bi++;
}
}
if (c.length < b.length) {
return false;
} else {
return true;
}
}