日期:2014-05-16  浏览次数:20404 次

js判断对象和数组相等


/**
* 对象比较
* @param o1
* @param o2
* @return
*/
function equalObject(o1, o2){
if(typeof o1 != typeof o2)return false;
if(o1 == null || o2 == null)return o1 == o2;
if(typeof o1 == 'object'){
for(var o in o1){
if(typeof o2[o] == 'undefined')return false;
if(!equalObject(o1[o],o2[o]))return false;
}
return true;
 
}else{
return o1 == o2;
}
}

/**
* 数组比较
* @param a1
* @param a2
* @return
*/
function equalArray(a1, a2) {
if (a1.length != a2.length) return false;
for (var i = 0; i < a1.length; i++) {
var j = isContain(a2,a1[i]);
if (j < 0) {
    return false;
    }else{
    a2.splice(j,1);
    }
}

return true;
}

function isContain(_arr,_element) {
for ( var i = 0; i < _arr.length; i++) {
if (_arr[i] == _element) {
return i;
}
}
return -1;
};