請在后臺配置參數,參數名稱:topads
前端開發 HTML5 CSS3 HTML CSS JavaScript jQuery Bootstrap

jquery實現數組去重、判斷數組以及對象中的內容是否相同

JavaScript HTML我幫您 1年前  2457次瀏覽
本帖最后由 html580 于 2013-12-4 13:03 編輯 數組去重,判斷數組、對象中的內容是否相同等等,在接下來的文章中使用js來簡單實現下,感興趣的朋友不要錯過.
/*
*數組元素去重
*/
if (typeof Array.prototype.distinct != "function") {
Array.prototype.distinct = function () {
this.sort();
for (var i = 0; i < this.length - 1; i++) {
if ($.isPlainObject(this) && $.isPlainObject(this)) {
if (o2o(this, this)) {
this.splice(i, 1);
}
} else if ($.isArray(this) && $.isArray(this)) {
if (a2a(this, this)) {
this.splice(i, 1);
}
} else if (this === this) {
this.splice(i, 1);
}
}
}
}
/*
*比較對象是否相同
*/
function o2o(o1, o2) {
if (!($.isPlainObject(o1) && $.isPlainObject(o2))) {
return false;
}

var k1k2 = <>,
k1 = <>,
k2 = <>;
$.each(o1, function (k, v) {
k1.push(k);
});

$.each(o2, function (k, v) {
k2.push(k);
});
if (k1.length != k2.length) {
return false;
}
k1k2 = k1;
k1k2 = k1k2.concat(k2);
k1k2.distinct();
if (k1.length != k1k2.length || k2.length != k1k2.length) {
return false;
}

var flag = true;
$.each(k1k2, function (i, v) {
var v1 = o1;
var v2 = o2;
if (typeof v1 != typeof v2) {
flag = false;
} else {
if ($.isPlainObject(v1) && $.isPlainObject(v2)) { //recursion
flag = o2o(v1, v2);
if (!flag) {
return false;
}
} else if ($.isArray(v1) && $.isArray(v2)) {
flag = a2a(v1, v2);
if (!flag) {
return false;
}
} else {
if (v1 !== v2) {
flag = false;
}
}
}
});
return flag;
}
/*
*比較數組是否完全相同
*/
function a2a(a1, a2) {
if (!($.isArray(a1) && $.isArray(a2))) {
return false;
}
if (a1.length != a2.length) {
return false;
}

a1.sort();
a2.sort();
for (var i = 0; i < a1.length; i++) {
if (typeof a1 != typeof a2) {
return false;
}
if ($.isPlainObject(a1) && $.isPlainObject(a2)) {
var retVal = o2o(a1, a2);
if (!retVal) {
return false;
}
} else if ($.isArray(a1) && $.isArray(a2)) { //recursion
if (!a2a(a1, a2)) {
return false;
}
} else if (a1 !== a2) {
return false;
}
}
return true;
}



發表評論

经典黑杰克游戏 天津快乐十分首位窍门 贵州11选五走势图 dnf手游不能交易商人怎么赚钱 微信赚钱过万真的 大乐透机选 功夫鸡排赚钱哪 本人有辆七座商务车做什么可以赚钱 便民p3开机号试机号 幸运365软件是正规的嘛 广东十一选五购买网址 福建快3怎么买能中 快乐十分网投的主页 浙江七乐彩走势图 武汉麻将红中赖子杠k 安徽时时彩劫介绍 老快3规则