Javascript 在对象内获取键值时出现问题
我对这段代码有一个问题:Javascript 在对象内获取键值时出现问题,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我对这段代码有一个问题: var Etudiants = { "N13213316" : { "name" : "Touati Mohammed", "birthDate" : "05 June 2001", "age" : (Math.round((new Date().getTime() - new Date(this.Etudiants.N1321
var Etudiants = {
"N13213316" : {
"name" : "Touati Mohammed",
"birthDate" : "05 June 2001",
"age" : (Math.round((new Date().getTime() - new Date(this.Etudiants.N13213316[birthDate]).getTime()) / 1000 / 60 / 60 / 24 / 365.25)),
"isStudent" : true,
"departement" : {
"2021" : "USMBA ENCG Fes",
"2021" : "USMBA FLDM Fes"
}
}
}
保存时,我会得到以下错误代码:
未捕获引用错误:未定义生日
因此,基本上我正在训练获取值“05 June 2001”以将其作为参数传递给Date函数,但我不能这样做,但是我可以从浏览器控制台访问该值,在那里我确实犯了错误,并提前表示感谢。有三种方法可以访问JavaScript中的对象属性:
object.property
object['property']
const{property}=object
注意:不要访问所提到的@roperzh对象文本中的字段。有三种方法可以访问JavaScript中的对象属性:
object.property
object['property']
const{property}=object
this.Etudiants.N13213316[birthDate]
引用birthDate变量-不要与“birthDate”字符串混淆。这个变量实际上没有在这里定义-因此您的错误消息
您应该更改代码以引用字符串:
this.Etudiants.N13213316["birthDate"]
或者让代码保持原样,但事先将birthDate变量声明为指向“birthDate”字符串:
请注意,您可能会在此处遇到其他问题:
- 如果您的代码在严格模式下运行,这将在此处未定义-在这种情况下,this.Etudiants将触发TypeError
- 即使代码在非严格模式下运行,在此处计算this.Etudiants表达式时,它实际上是未定义的-尚未对Etudiants变量赋值-因此this.Etudiants.N13213316将导致类型错误
var Etudiants = {
"N13213316" : {
"name" : "Touati Mohammed",
"birthDate" : "05 June 2001",
"isStudent" : true,
"departement" : {
"2021" : "USMBA ENCG Fes",
"2021" : "USMBA FLDM Fes"
}
}
}
Etudiants.N13213316.age = (Math.round((new Date().getTime() - new Date(Etudiants.N13213316["birthDate"]).getTime()) / 1000 / 60 / 60 / 24 / 365.25)),
以下表达式中的生日位:
this.Etudiants.N13213316[birthDate]
引用birthDate变量-不要与“birthDate”字符串混淆。这个变量实际上没有在这里定义-因此您的错误消息
您应该更改代码以引用字符串:
this.Etudiants.N13213316["birthDate"]
或者让代码保持原样,但事先将birthDate变量声明为指向“birthDate”字符串:
请注意,您可能会在此处遇到其他问题:
- 如果您的代码在严格模式下运行,这将在此处未定义-在这种情况下,this.Etudiants将触发TypeError
- 即使代码在非严格模式下运行,在此处计算this.Etudiants表达式时,它实际上是未定义的-尚未对Etudiants变量赋值-因此this.Etudiants.N13213316将导致类型错误
var Etudiants = {
"N13213316" : {
"name" : "Touati Mohammed",
"birthDate" : "05 June 2001",
"isStudent" : true,
"departement" : {
"2021" : "USMBA ENCG Fes",
"2021" : "USMBA FLDM Fes"
}
}
}
Etudiants.N13213316.age = (Math.round((new Date().getTime() - new Date(Etudiants.N13213316["birthDate"]).getTime()) / 1000 / 60 / 60 / 24 / 365.25)),
这回答了你的问题吗?这回答了你的问题吗?你提到的方法没有一个有效,我试过,但总是一样的错误你提到的方法没有一个有效,我试过,但总是一样的错误谢谢你的帮助,是的,确实发生了什么,但是我按照你的建议做了,我再次收到了相同的错误消息。请确保确认错误现在指的是哪个变量或表达式。是的,确定,未定义的变量是N1323316 nowOk,这正是我在回答的最后一部分中指出的问题。我现在添加了一些注释,为您指出解决此问题的正确方向。是的,现在它正在工作。非常感谢您的帮助,是的,确实发生了什么,但是我按照您的建议做了,我再次收到了相同的错误消息。请确保确认错误现在指的是哪个变量或表达式。是的,确定,未定义的变量是N1323316 Nook,这正是我在回答的最后一部分中指出的问题。我现在添加了一些注释,为您指出解决此问题的正确方向。是的,现在它正在工作,非常感谢