javascript为什么word返回数组和word[0]未定义的javascript
我正在努力使我的网站双语化。 所以我想迭代我的JS对象转换。我可以使用以下代码进行迭代:javascript为什么word返回数组和word[0]未定义的javascript,javascript,arrays,object,Javascript,Arrays,Object,我正在努力使我的网站双语化。 所以我想迭代我的JS对象转换。我可以使用以下代码进行迭代: for (var word of translation) { console.log(word); } 但我明白了: 从我使用这段代码的那一刻起,我就没有定义 for (var word of translation) { console.log(word[0]); } 这是我的对象模型 translation = [ { English : [ [&
for (var word of translation) {
console.log(word);
}
但我明白了:
从我使用这段代码的那一刻起,我就没有定义
for (var word of translation) {
console.log(word[0]);
}
这是我的对象模型
translation = [
{ English : [ ["English" , "engels"], ["lblEng",""] ]},
{dutch : [["dutch" , "nederlands"], ["lblNl",""]]},
{ second : [["second","seconde"], ["sec",""]]},
{minut : [["minut", "minut"],["min",""]]},
{ hour : [["hour","uur"],["h",""]]},
{ day :[ ["day", "dag"],["d",""]]},
{ to : [["to", "naar"],["to",""]]},
{ from : [["from", "van"],["from",""]]}
]
for…of
对数组中的值(即对象)进行交互。例如,第一次迭代,word
={English:[[“English”,“engles”],[“lblEng”,“”“]}
因此,当您执行word[0]
itsundefined
时,因为word
对象中没有0
属性
for (var word of translation) {
console.log(word[0]);
}
变量word
将分配一个对象,如下所示:
{ English : [ ["English" , "engels"], ["lblEng",""] ]}
因此,word[0]
返回undefined
,因为对象没有属性0
也许,您真正想做的是:
const translation=[
{英语:[“英语”,“恩格斯”,“lblEng”,“英语]],
{荷兰语:[“荷兰语”、“荷兰”]、[“荷兰语”、“荷兰语”、“]},
{second:[[“second”,“seconde”],[“sec”,“]]},
{minut:[[“minut”,“minut”],[“min”,“]},
{hour:[[“hour”,“uur”],[“h”,““”]]},
{day:[[“day”、“dag”]、[“d”、“]]},
{to:[“to”,“naar”],[“to”,“”]},
{from:[[“from”,“van”],[“from”,'']}
];
为了(让翻译的单词){
//获取键和值并在其上循环。
Object.entries(word.forEach)([lang,value])=>{
//值[0]返回第一个索引,因此您可以按如下方式访问它:
设[第一]=值;
log(lang,第一个);
});
}
感谢您的所有反应/回答
如果因为我正在对我的web应用程序进行另一个分区而花了一段时间作出响应,那么realy会帮助我前进。这是否回答了您的问题?根据您的示例,
word
将是一个对象。数组中没有对象具有属性0
,因此word[0]
确实会返回未定义的。所有对象都有不同的属性<代码>word.English
适用于第一个,但不适用于第二个。由于您没有解释要获得什么输出,我不知道如何提供帮助。您可能需要使用Object.values(word)[0]