我在Javascript中遇到了一個輕微的問題,即以奇怪的方式處理對象(至少可以),除非我錯過了某些東西。如果一個對象的屬性爲null,則爲「對象爲空」錯誤
我有一個對象名爲state
。當我做console.log(state)
我得到這個:
在這一點上,我嘗試使用過的對象去jQuery的each
:
$.each(state, function (i, sobj) {
if(mid == sobj.user_id)
//some stuff;
});
不過,在這裏我得到一個錯誤說TypeError: sobj is null
。我發現這是因爲對象內的trump
屬性(見上圖)初始化爲null
。有了任何其他價值,它的作品。很明顯,我可以通過將其初始化爲0來解決這個問題,但是這在概念層面上讓我感到困惑:爲什麼不應該允許其中一個屬性具有null
作爲其值?對我來說,當我像這樣循環它時,我應該得到一個錯誤,說整個對象爲null,只是因爲其中一個屬性爲null。我沒有專門爲這個房產做任何事情。因此,有人可以告訴我爲什麼會發生這種情況(谷歌沒有幫助),除了明顯的「不要讓任何東西在對象內爲空」之外,還有其他方法可以解決這個問題嗎?
「爲什麼不應該允許其中一個屬性的值爲null?」那麼,屬性*被允許爲空作爲一個值。但是如果其中一個屬性有一個空值,那麼你*不被允許獲得它的'user_id'(因爲'null'沒有'user_id') – Gareth
在我看來,你的'state'對象應該有一個新的'seat'屬性,它包含一個'user'對象的數組。那麼你可以遍歷這些,而不是迭代*所有*的狀態屬性 – Gareth
這會節省時間表現方式還是僅僅是「最佳實踐」的情況? – jovan