/** * 驗證兩個object 是否相同
* @param obj [需要進行驗證的資料1]
* @param newobj [需要進行驗證的資料2] */
function
objsame (obj,newobj)
for(let key in
obj)
} else
if ( obj[key] instanceof
array)
} else
if (obj[key] !=newobj[key])
}return
bol}/**
* 驗證兩個陣列是否相同
* @param arr [需要進行驗證的資料1]
* @param newarr [需要進行驗證的資料2] */
function
arrsame (arr,newarr)
for (let i = 0, n = arr.length;i < n; i++)
} else
if (arr[i] instanceof
object)
}else
if (arr[i] !=newarr[i])
}return
bol;
}
也可以單純的使用 for in :
/** * 驗證兩條資料是否相同
* @param arg1 [需要進行驗證的資料1]
* @param arg2 [需要進行驗證的資料2] */
function
issame (arg1,arg2)
for (let key in
arg1)
} else
if(arg1[key] !=arg2[key])
}return
bol
}
我個人喜歡對陣列使用for,對物件使用for in,以上**只進行了粗略的測試,有什麼問題歡迎指正,不勝感激。
js 判斷兩個物件是否相等
判斷兩個物件是否相等 isobjectvalueequal function a,b var aprops object.getownpropertynames a var bprops object.getownpropertynames b if aprops.length bprops.len...
js判斷兩個物件是是否相等
用object.is 只能判斷兩個物件應用的位址是不是一樣 如果兩個物件的應用位址不一樣。兩個物件對應的鍵和值是一樣的,應用位址不一樣。那麼這時候判斷兩個物件用object.is就行不通了 思路需要遞迴每個鍵看看對應的值是否一樣。鍵對應的值有兩種可能 如果是基本資料型別 判斷他們的值是否相等就行 如...
Set 判斷倆個物件是否相等
set判斷倆個物件相同不是使用 運算子,而是根據equals方法。也就是說,如果只要倆個物件用equals方法比較返回true,set就不會接受這個物件,反之,只要來個物件用equals方法返回false,set就會接受這個物件 甚至這倆個物件是同乙個物件,set也可以把他們當成倆個物件 hashs...