[英]how to create javascript object dynamically inside a function
我想在每次调用“dataObject”函数时动态创建一个 javascript 对象,所以我想做这样的事情:
let dataObject = {};
function appendDiv() {
e = this.event.target;
//this id changes each time when the function is called
var current_id = e.id;
// here I had to initialized it because if I didn't, it would appear an error "TypeError: dataObject[(intermediate value)] is undefined"
dataObject[`${current_id}`] = {};
$('#creates').submit(function (event) {
var i, j;
for (i = 0; i < nbr_group.value; i++) {
inputlist = [];
for (j = 0; j < 3; j++) {
formChild = document.querySelectorAll('.period-select')[j].value;
inputlist[j] = formChild;
}
dataObject[`${current_id}`][`${i}`] = {
firstvalue: inputlist[0],
secondvalue: inputlist[1],
thirdvalue: inputlist[2]
}
}
});
}
所以问题是当第一次调用该函数时,子对象将被成功创建,但对该函数的第二次调用会将它们创建为空,例如:
// the first call:
dataObject = {
'1': {
'1': { '1': 'some values' },
'2': { '1': 'another value' }
}
};
//the second call or third or... :
dataObject = {
'1': {
'1': { '1': 'some values' },
'2': { '1': 'another value' }
},
'2': {}
};
如果你想复制一个对象,不要使用dataObject[`${current_id}`][`${i}`] = {firstvalue: inputlist[0], secondvalue: inputlist[1], thirdvalue: inputlist[2]};
,使用这个: let objectCopy = Object.assign({}, dataObject);
其中dataObject
是您要复制的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.