今天在小程序開發的過程中遇到一個很大的問題,就是判斷獲取的用戶數據。這裏標爲一個對象。需要判斷該對象是否存在 一個members中的。這裏的members包含多個用戶的完整數據。翻遍全網。終於找到了。將次經驗分享給大家。
第一種情況 對象鍵值對順序不變
var arr=[{"appId":"1","appName":"小君"},
{"appId":"2","appName":"小花"}
]
var obj={"appId":"2","appName":"小花"}
if(JSON.stringify(arr).indexOf(JSON.stringify(obj)) === -1){
console.log('不存在')
arr.push(obj)
}else{
console.log('已存在')
}
以上情況能正常運行
一旦出現以下情況,判斷就不可控
var obj={"appName":"小花","appId":"2"}
第二種情況 對象鍵值對順序改變
在這種情況下,用以上方法絕對會報錯。因此我們採用新的方法來解決這個問題 以下是代碼
var arr=[{"appId":"1","appName":"小君"},
{"appId":"2","appName":"小花"}
]
var obj={"appName":"小花","appId":"2"}
if(JSON.stringify(arr).includes(JSON.stringify(obj)) === false){
console.log('不存在')
arr.push(obj)
}else{
console.log('已存在')
}
總結
很多情況下,我們在判斷一個數組中是否存在某個是,我們用indexOf就行。包括在判斷有序的對象數組中是否存在某個對象。一旦參考對象的順序打亂,我們就得使用 includes