我有以下对象
{
"timetable": {
"MONDAY": {
"start-end0": {},
"start-end1": {},
"start-end2": {},
"start-end3": {},
"start-end4": {}
}
}
我需要将"start-end5"
添加到MONDAY
。我尝试使用点运算符到星期一,如timetable.monday.start-end5={}
它说星期一未定义
-
monday
不是MONDAY
- 由于
start-end4
不是一个有效的标识符,obj.timetable.MONDAY.start-end5 = {}
将无法编译;你需要使用括号语法。
,
obj.timetable.MONDAY["start-end5"] = {};
变量名应遵循此限制
- 空白,不允许使用逗号。
- 除下划线(_)外,不允许使用特殊符号。
- 首字符必须为字母或下划线。
试试这样
var time = {
"timetable": {
"MONDAY": {
"start-end0": {},
"start-end1": {},
"start-end2": {},
"start-end3": {},
"start-end4": {}
}
}
}
time.timetable.MONDAY["start-end5"] = {}
DEMO
:
如何动态添加start-end5 start-end6…到我的地图上??这可能吗?
和
根据value添加一个循环和concat字符串。
这样的var time = {
"timetable": {
"MONDAY": {
"start-end0": {},
"start-end1": {},
"start-end2": {},
"start-end3": {},
"start-end4": {}
}
}
}
for(var i=0;i<5;i++) // set the limit of loop according to your need
time.timetable.MONDAY["start-end"+i] = {}
DEMO
您需要在这里使用[""]
符号,因为您的密钥名称不是camelCase或其他有效的对象密钥命名
a.timetable.MONDAY["start-end5"] = {};
我想添加一个完全可行(并且非常可读)的语法,只是为了好玩:
time["timetable"]["MONDAY"]["start-end5"] = {};