国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

通過JS深度判斷兩個對象字段相同

2024-05-06 16:52:08
字體:
供稿:網(wǎng)友

代碼:

/*** 判斷此對象是否是Object類型* @param {Object} obj */function isObject(obj){return Object.prototype.toString.call(obj)==='[object Object]';};/*** 判斷此類型是否是Array類型* @param {Array} arr */function isArray(arr){return Object.prototype.toString.call(arr)==='[object Array]';};/*** 深度比較兩個對象是否相同* @param {Object} oldData * @param {Object} newData */function equalsObj(oldData,newData){// 類型為基本類型時,如果相同,則返回trueif(oldData===newData)return true;if(isObject(oldData)&&isObject(newData)&&Object.keys(oldData).length === Object.keys(newData).length){// 類型為對象并且元素個數(shù)相同// 遍歷所有對象中所有屬性,判斷元素是否相同for (const key in oldData) {if (oldData.hasOwnProperty(key)) {if(!equalsObj(oldData[key],newData[key]))// 對象中具有不相同屬性 返回falsereturn false;}}}else if(isArray(oldData)&&isArray(oldData)&&oldData.length===newData.length){// 類型為數(shù)組并且數(shù)組長度相同for (let i = 0,length=oldData.length; i <length; i++) {if(!equalsObj(oldData[i],newData[i]))// 如果數(shù)組元素中具有不相同元素,返回falsereturn false;}}else{// 其它類型,均返回falsereturn false;}// 走到這里,說明數(shù)組或者對象中所有元素都相同,返回truereturn true;};

測試:

var oldArr = [1,2,[{name:"張三",age:11,}],{name:'李四',age:21,em:[{address:'邯鄲',phone:'123'},{address:'北京',phone:234}]}];var newArr = [1,2,[{name:"張三",age:11}],{name:'李四',age:21,em:[{address:'邯鄲',phone:'123'},{address:'北京',phone:234}]}];console.log(equalsObj(oldArr,newArr));

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 金乡县| 鹿泉市| 拉萨市| 白城市| 泰州市| 噶尔县| 临颍县| 翁牛特旗| 于都县| 民县| 大余县| 肇源县| 鄂伦春自治旗| 会泽县| 长子县| 沁源县| 洱源县| 无锡市| 叶城县| 崇义县| 运城市| 阿坝县| 法库县| 商丘市| 孝感市| 福安市| 唐河县| 鱼台县| 辉县市| 老河口市| 勐海县| 金昌市| 元谋县| 临海市| 金沙县| 塘沽区| 开封县| 横山县| 合川市| 若尔盖县| 靖西县|