最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中如何比較兩個(gè)Json對(duì)象是否相等實(shí)例代碼

 更新時(shí)間:2016年07月13日 15:29:05   作者:什么都看不懂  
這篇文章主要介紹了JS中如何比較兩個(gè)Json對(duì)象是否相等實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

在js前端面試過程中,經(jīng)常會(huì)遇到這樣的筆試題:JS中如何比較兩個(gè)Json對(duì)象是否相等實(shí)例代碼,下面小編抽點(diǎn)時(shí)間給大家整理下,一起看看吧。

1.先準(zhǔn)備三個(gè)工具方法,用于判斷是否是對(duì)象類型,是否是數(shù)組,獲取對(duì)象長度

function isObj(object) {
return object && typeof (object) == 'object' && Object.prototype.toString.call(object).toLowerCase() == "[object object]";
}
function isArray(object) {
return object && typeof (object) == 'object' && object.constructor == Array;
}
function getLength(object) {
var count = 0;
for (var i in object) count++;
return count;
}

2.準(zhǔn)備兩個(gè)相同或不同的Json對(duì)象

var jsonObjA = {
"Name": "MyName",
"Company": "MyCompany",
"Infos": [
{ "Age": "100" },
{
"Box": [
{ "Height": "100" },
{ "Weight": "200" }
]
}
],
"Address": "馬欄山"
}
var jsonObjB = {
"Name": "MyName",
"Company": "MyCompany",
"Infos": [
{ "Age": "100" },
{
"Box": [
{ "Height": "100" },
{ "Weight": "200" }
]
}
],
"Address": "馬欄山二號(hào)"
}

3.主要的代碼

function Compare(objA, objB) {
if (!isObj(objA) || !isObj(objB)) return false; //判斷類型是否正確
if (getLength(objA) != getLength(objB)) return false; //判斷長度是否一致
return CompareObj(objA, objB, true);//默認(rèn)為true
}
function CompareObj(objA, objB, flag) {
for (var key in objA) {
if (!flag) //跳出整個(gè)循環(huán)
break;
if (!objB.hasOwnProperty(key)) { flag = false; break; }
if (!isArray(objA[key])) { //子級(jí)不是數(shù)組時(shí),比較屬性值
if (objB[key] != objA[key]) { flag = false; break; }
} else {
if (!isArray(objB[key])) { flag = false; break; }
var oA = objA[key], oB = objB[key];
if (oA.length != oB.length) { flag = false; break; }
for (var k in oA) {
if (!flag) //這里跳出循環(huán)是為了不讓遞歸繼續(xù)
break;
flag = CompareObj(oA[k], oB[k], flag);
}
}
}
return flag;
}

4.調(diào)用方法

var result = Compare(jsonObjA, jsonObjB);
console.log(result); // true or false

相關(guān)文章

最新評(píng)論

庐江县| 治县。| 内江市| 马边| 斗六市| 侯马市| 楚雄市| 合江县| 安福县| 从化市| 鄯善县| 宽甸| 吴堡县| 长海县| 德格县| 宁明县| 六枝特区| 抚远县| 株洲县| 忻城县| 临桂县| 天镇县| 伊宁市| 灵寿县| 日土县| 岳池县| 桐柏县| 吉安县| 长岭县| 东丽区| 滦南县| 淮安市| 武川县| 黄石市| 四子王旗| 巴彦淖尔市| 潞西市| 舟山市| 兰州市| 克东县| 诏安县|