我正在尝试创建一个包含对象的对象,因此将其视为字典:
var dictionaries = {};
dictionaries.english_to_french =
{
{english:"hello",french:"bonjour"},
{english:"i want",french:"je veux"},
{english:"bla",french:"le bla"}
};
但它会出错Uncaught SyntaxError: Unexpected token {
我做错了什么?
谢谢!
对不起,我没有澄清我想做什么。 编辑了上面的代码。
答案 0 :(得分:5)
您尝试为对象提供属性,该属性将是单个对象:
dictionaries.english_to_french =
{english:"hello",french:"bonjour"}
;
您不需要额外的{ }
。你可以一次声明整个事情:
var dictionaries = {
english_to_french: {
english: "hello", french: "bonjour"
}
};
我建议你的词典更好的格式是:
var dictionaries = {
english_to_french: {
"hello": "bonjour",
"chicken": "poulet", // ? something like that
"Englishman": "rosbif"
}
};
这样你就可以直接查找单词而无需搜索。然后,您可以从中创建反向字典:
dictionaries.french_to_english = function(dict) {
var rv = {};
for (var eword in dict)
rv[dict[eword]] = eword;
return rv;
}(dictionaries.english_to_french);
答案 1 :(得分:0)
为了嵌套两个或多个对象,对象需要为其分配属性。例如,
{
"hello":{
"english":"hello",
"french":"bonjour",
"portuguese":"ola"
},
"good day":{...},
"how are you":{...}
}
对象开头的“hello”将是属性。那么对象就是它的价值。这样,您可以通过访问其属性来访问该对象。只是将对象放在对象中是行不通的。这就是你收到错误的原因。