你能幫助我如何檢查這兩個物件是否相等嗎? 這是我試圖比較的兩個物件......
let obj1 = {"Add Ons": [{"addon_id": 32, "addon_name": "黑珍珠", "addon_price": 15}, {"addon_id": 33, "addon_name": "白珍珠", "addon_price": 15}]}
讓obj2 = {"附加功能"。[{"addon_id": 33, "addon_name": "白珍珠", "addon_price": 15}, {"addon_id": 32, "addon_name": "黑珍珠", "addon_price": 15}]}
我試著用這個 const isEqual = (...objects) => objects.every(obj => JSON.stringify(obj) === JSON.stringify(objects[0]));來檢查它是否相等,但是如果里面的陣列是shuffle的話,就會回傳錯誤。 如何檢查它是否是隨機事件? 非常感謝你!
uj5u.com熱心網友回復:
假設你正在檢查addon_id的相等,
- 你可以得到像obj1['Add Ons'] 這樣的陣列。
- 如果陣列的長度不一樣,那么它們就不相等。
- 用
every()檢查第一個陣列中的所有物件,并檢查obj2陣列是否包含所有的id。
函式isEqual() {
讓obj1 = {
'Add Ons': [
{ addon_id: 32, addon_name: 'Black Pearl', addon_price: 15 },
{ addon_id: 33, addon_name: 'White Pearl', addon_price: 15 }.
]
};
讓obj2 = {
'附加功能'。[
{ addon_id: 33, addon_name: 'White Pearl', addon_price: 15 },
{ addon_id: 32, addon_name: 'Black Pearl', addon_price: 15 },
{ addon_id: 34, addon_name: 'Black Pearl', addon_price: 15 }.
]
};
如果(obj1['Add Ons'].length !== obj2['Add Ons'])回傳 false。
return obj1['Add Ons'].every(val => {
return obj2['Add Ons'].some(b2 => b2.addon_id == val.addon_id)。
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/312756.html
標籤:
