如何通过在Javascript对象中创建新属性来为不存在的属性设置值?
我有如下Javascript对象如何通过在Javascript对象中创建新属性来为不存在的属性设置值?,javascript,node.js,firebase,firebase-realtime-database,Javascript,Node.js,Firebase,Firebase Realtime Database,我有如下Javascript对象 var data = { USER_LIKES: { userId1: { publishedContentId: 1492688420796, publishedContentId1: 'TIMESTAMP', publishedContentId2: 1492688750874 }, userId2: { publishe
var data = {
USER_LIKES:
{ userId1:
{ publishedContentId: 1492688420796,
publishedContentId1: 'TIMESTAMP',
publishedContentId2: 1492688750874 },
userId2:
{ publishedContentId: 1492688611936,
publishedContentId1: 1492688730807,
publishedContentId2: 'TIMESTAMP' }
}
}
我可以在现有userid下添加更多内容,如下所示
data["USER_LIKES"]["userId1"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP;
但是我想在userId下添加对象中不存在的内容。例如,我想在userId3(不存在)下添加内容
我试着做同样的事情如下
data["USER_LIKES"]["userId3"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP;
但返回错误TypeError:无法设置未定义的属性“PublishedContentId 1”
那么如何实现这一点呢?错误消息非常详细,您需要首先创建
userId3
属性
data["USER_LIKES"]["userId3"] = data["USER_LIKES"]["userId3"] || {};
data["USER_LIKES"]["userId3"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP
或
错误消息非常详细,您需要首先创建
userId3
属性
data["USER_LIKES"]["userId3"] = data["USER_LIKES"]["userId3"] || {};
data["USER_LIKES"]["userId3"]["publishedContentId3"] = admin.database.ServerValue.TIMESTAMP
或
在尝试在较低级别创建内容之前,您应该测试每个对象的存在性。在尝试在较低级别创建内容之前,您应该测试每个对象的存在性。@isuru,如果您根据帖子中的其他对象应用多个
publishedContent
属性,您还可以将它们全部添加到该答案第二个选项的{}
中。@isuru,如果您根据帖子中的其他对象应用了多个publishedContent
属性,您还可以将它们全部添加到该答案第二个选项的{}
中。