2017-04-20 40 views
0

我有Javascript對象,如下所示。如何通過在Javascript對象中創建新屬性來將值設置爲不存在的屬性?

var data = { 
     USER_LIKES: 
     { userId1: 
      { publishedContentId: 1492688420796, 
      publishedContentId1: 'TIMESTAMP', 
      publishedContentId2: 1492688750874 }, 
     userId2: 
      { publishedContentId: 1492688611936, 
      publishedContentId1: 1492688730807, 
      publishedContentId2: 'TIMESTAMP' } 
     } 
    } 

我可以在現有userIds下添加更多內容,如下所示。

data["USER_LIKES"]["userId1"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP; 

但我想在userId下添加不存在於對象中的內容。例如,我想在userId3下添加內容(不存在)。

我試圖做同樣的事情如下

data["USER_LIKES"]["userId3"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP; 

,但返回錯誤TypeError: Cannot set property 'publishedContentId1' of undefined

那麼我該如何做到這一點?

+0

試圖以較低的創造的東西之前,您應該測試每個對象是否存在等水平。 – SPlatten

回答

4

錯誤消息是相當冗長,您需要創建userId3財產第一

data["USER_LIKES"]["userId3"] = data["USER_LIKES"]["userId3"] || {}; 
data["USER_LIKES"]["userId3"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP 

OR

data["USER_LIKES"]["userId3"] = { 
    publishedContentId3 : admin.database.ServerValue.TIMESTAMP 
}; 
+1

@isuru,如果您要根據帖子中的其他對象應用多個'publishedContent'屬性,則還可以在此答案中的第二個選項的{}'內將它們一起添加。 –

+0

很好,它的工作原理。 – isuru

相關問題