//第一个数组与第二个数组合并起来属性不相同合并
this.union = function () {
var arg = getArg(arguments);
var o = arg["Array"][0] || [];
var o1 = arg["Array"][1] || [];
var judge = arg["function"][0] || arg["string"][0] || function () { return false; };
var param = arg["Object"][0] || {};
if (o.constructor == Array && o1.constructor == Array) {
judge = judge || {};
if (judge.constructor == String) {
var uNn = [];
var oFb = clone(o);
var sTt = _thisApp.subtract(o1, o, judge, param);
uNn = _thisApp.merge(oFb, sTt);
return uNn;
} else if (judge.constructor == Function) {
var uNn = [];
var oFb = clone(o);
var sTt = _thisApp.subtract(o1, o, judge);
uNn = _thisApp.merge(oFb, sTt);
return uNn;
} else if (judge.constructor == Object) {
var uNn = [];
var oFb = clone(o);
var sTt = _thisApp.subtract(o1, o, judge);
uNn = _thisApp.merge(oFb, sTt);
return uNn;
}
}
}
//获取参数
var getArg = function (arg) {
var ret = {
'number': [],
'string': [],
'boolean': [],
'object': [],
'Object': [],
'Array': [],
'function': [],
'Date': [],
'null': []
}
for (var i = 0, len = arg.length; i < len; i++) {
var ar = arg[i];
if (typeof (ar) == 'number') {
ret['number'].push(ar);
} else if (typeof (ar) == 'string') {
ret['string'].push(ar);
} else if (typeof (ar) == 'boolean') {
ret['boolean'].push(ar);
} else if (typeof (ar) == 'function') {
ret['function'].push(ar);
} else if (typeof (ar) == 'object') {
if (ar) {
if (ar.constructor == Object) {
ret['object'].push(ar);
ret['Object'].push(ar);
} else if (ar.constructor == Array) {
ret['object'].push(ar);
ret['Array'].push(ar);
} else if (ar.constructor == Date) {
ret['Date'].push(ar);
}
} else {
ret['null'].push(ar);
}
}
}
return ret;
}