推送对象中的对象

时间:2018-06-06 08:56:08

标签: javascript

我正试图进入我的对象,这是我的代码:

 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不是函数

如何推入对象?

3 个答案:

答案 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);