我正试图从动态表单的输入构建一个javascript对象
fieldTickets = [];
thisWeek = randomDateOnSunday;
weekDay = randomWeekDayWithinTheWeek;
fieldTickets[thisWeek]['days'][weekDay]['fieldTechs'].push({name: fieldTechName});
正如你所看到的,我有一些键是动态变量,还有一些是定义的("days"one_answers"fieldTechs"总是一样的,但星期和工作日会改变(。不幸的是,每次我尝试运行它时,即使是在小提琴上,它也会给我一个Cannot read properties of undefined (reading 'days')
错误。我已经处理这个问题好几个小时了,想不通。
如何使用动态键构建嵌套数组/对象?
我认为如果它不存在,它会自动创建使用该语法。。。显然我错了,但还有更短的吗比大量的if exists语句还要多吗?
JavaScript不会自动创建它,但可以在没有if
的情况下创建,请尝试下面的
const thisWeek = '12'; //randomDateOnSunday;
const weekDay = 'Sunday'; // randomWeekDayWithinTheWeek;
fieldTickets = {
[thisWeek]: {
days: {
[weekDay]: {
fieldTechs: []
}
}
}
};
console.log('fieldTickets:', fieldTickets);
// pushing
fieldTickets[thisWeek]['days'][weekDay]['fieldTechs'].push({
name: "Hello"
});
// pushing again
fieldTickets[thisWeek]['days'][weekDay]['fieldTechs'].push({
name: "World"
});
console.log('fieldTickets 2:', fieldTickets);