js 判斷對象數組是否存在某一個對象

今天在小程序開發的過程中遇到一個很大的問題,就是判斷獲取的用戶數據。這裏標爲一個對象。需要判斷該對象是否存在 一個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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章