Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript为什么word返回数组和word[0]未定义的javascript_Javascript_Arrays_Object - Fatal编程技术网

javascript为什么word返回数组和word[0]未定义的javascript

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 : [ [&

我正在努力使我的网站双语化。 所以我想迭代我的JS对象转换。我可以使用以下代码进行迭代:

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]
its
undefined
时,因为
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]