我正试图进入我的对象,这是我的代码:
credentialsDom = { //my object
'en': {'template':'html/en_credentials_email.html',
'mailSubject':'Your solution test credentials'},
'fr':{'template':'html/fr_credentials_email.html',
'mailSubject':'Vos accès à la plateforme de test'}
}
credentialsDom['fr'].push({"data": "data"})
我得到了:
credentialsDom.fr.push不是函数
如何推入对象?
答案 0 :(得分:0)
这应该有效
credentialsDom.fr["data"]="data"
答案 1 :(得分:0)
正如Nikhil Aggarwal和CertainPerformance所提到的,您将Javascript对象误认为数组。 JS对象没有名为“push”的方法。因此,当您尝试对对象执行该不存在的方法时出现错误消息。您可以使用点表示法或方括号添加新属性或更新JS对象的现有属性。
credentialsDom.fr.data = 'data';
或
credentialsDom['fr']['data'] = 'data';
应该都有效。
您可以在此处找到更多信息:https://www.w3schools.com/js/js_objects.asp
PS: 我建议从这个问题中删除jQuery标记,因为这里讨论的对象符号与纯JavaScript而不是jQuery有关。
答案 2 :(得分:0)
.push()
只能用于array
因此,要使其工作,您必须分配新属性,而不是推送值。
credentialsDom.fr.data = "data"; // credentialsDom['fr']['data'] <-- works too
credentialsDom = { //my object
'en': {'template':'html/en_credentials_email.html',
'mailSubject':'Your solution test credentials'},
'fr':{'template':'html/fr_credentials_email.html',
'mailSubject':'Vos accès à la plateforme de test'}
}
credentialsDom.fr.data = "data";
console.log(credentialsDom);