复制代码代码如下:
-
*数组元素去重
-
ถ้า (typeof Array.prototype.distinct != "ฟังก์ชั่น"){
Array.prototype.distinct = ฟังก์ชั่น(){
นี้.เรียงลำดับ();
สำหรับ(var i=0;i<this.length-1;i++){
if($.isPlainObject(นี้[i]) && $.isPlainObject(นี้[i+1])){
ถ้า(o2o(นี่[i],นี่[i+1])){
นี้.ประกบ(i,1);
-
} อื่น ๆ if($.isArray(this[i]) && $.isArray(this[i+1])){
ถ้า(a2a(นี้[i],นี้[i+1])){
นี้.ประกบ(i,1);
-
} อื่นถ้า(นี้[i]===นี้[i+1]){
นี้.ประกบ(i,1);
-
-
-
-
-
*比较对象是否相同
-
ฟังก์ชั่น o2o(o1,o2){
ถ้า(!($.isPlainObject(o1) && $.isPlainObject(o2))){
กลับเท็จ;
-
var k1k2=[],k1 =[],k2=[];
$.each(o1,ฟังก์ชั่น(k,v){
k1.กด(k);
-
$.each(o2,ฟังก์ชั่น(k,v){
k2.กด(k);
-
ถ้า(k1.length != k2.length){
กลับเท็จ;
-
k1k2 = k1;
k1k2 = k1k2.concat(k2);
k1k2.แตกต่าง();
ถ้า(k1.length != k1k2.length || k2.length != k1k2.length){
กลับเท็จ;
-
var flag=true;
$.each(k1k2,ฟังก์ชัน(i,v){
วาร์ v1= o1[วี];
วาร์ v2 =o2[วี];
ถ้า (ประเภทของ v1 != ประเภทของ v2){
ธง=เท็จ;
}อื่น{
if($.isPlainObject(v1) && $.isPlainObject(v2))//การเรียกซ้ำ
ธง = o2o(v1,v2);
ถ้า(!ธง){
กลับเท็จ;
-
} อื่น ๆ if($.isArray(v1) && $.isArray(v2)){
ธง = a2a (v1, v2);
ถ้า(!ธง){
กลับเท็จ;
-
}อื่น{
ถ้า(v1 !== v2){
ธง=เท็จ;
-
-
-
-
ธงส่งคืน;
-
-
*比较数组是否完全相同
-
ฟังก์ชั่น a2a(a1,a2){
ถ้า(!($.isArray(a1) && $.isArray(a2))){
กลับเท็จ;
-
ถ้า(a1.length != a2.length){
กลับเท็จ;
-
a1.เรียงลำดับ();
a2.เรียงลำดับ();
สำหรับ(var i=0;i<a1.length;i++){
ถ้า(ประเภทของ a1[i] != ประเภทของ a2[i]){
กลับเท็จ;
-
ถ้า($.isPlainObject(a1[i]) && $.isPlainObject(a2[i])){
var retVal = o2o(a1[i],a2[i]);
ถ้า(!retVal){
กลับเท็จ;
-
}else if($.isArray(a1[i]) && $.isArray(a2[i]) ){// การเรียกซ้ำ
ถ้า(!a2a(a1[i],a2[i])){
กลับเท็จ;
-
} อื่น ๆ if(a1[i] !== a2[i]){
กลับเท็จ;
-
-
กลับเป็นจริง;
-