我正在尝试创建一个数组对象。 我将其定义如下:
work = {
'jobs': [{
'employer': 'ABC',
'jobPosition': 'FrontEndEngineer',
'experience': '1 year',
'city': 'Mumbai'
}]
};
因为它是一个数组,我试图将它作为
附加到下一个位置work.jobs[1].employer="QWE";
work.jobs[1].jobPosition = "Web Dev Intern";
work.jobs[1].experience = "6 months";
work.jobs[1].city = "Bengaluru";
安慰工作对象,它显示错误:
未捕获的TypeError:无法设置属性'雇主'未定义的
我做错了什么?
答案 0 :(得分:2)
尝试使用push:
new_job = {
'employer': 'QWE',
'jobPosition': 'Web Dev Intern',
'experience': '6 months',
'city': 'Bengaluru'
}
work.jobs.push(new_job)
答案 1 :(得分:0)
work.jobs[1]
尚不存在,目前正在undefined
。因此,访问它的.employer
属性会引发错误。使用此选项初始化work.jobs[1]
:
work.jobs[1] = {
'employer': 'QWE',
...
};
,或者
work.jobs.push({
'employer': 'QWE',
...
});
var work = {
'jobs': [{
'employer': 'ABC',
'jobPosition': 'FrontEndEngineer',
'experience': '1 year',
'city': 'Mumbai'
}]
};
work.jobs.push({
'employer': 'QWE',
'jobPosition': 'Web Dev Intern',
'experience': '6 months',
'city': 'Bengaluru'
});
console.log(work);

答案 2 :(得分:0)
您可以使用Array.prototype.push
方法。这使您可以推送整个已定义的对象,而不是通过深度引用添加。
let work = {
'jobs': [{
'employer': 'ABC',
'jobPosition': 'FrontEndEngineer',
'experience': '1 year',
'city': 'Mumbai'
}]
};
const job = {
'employer': 'QWE',
'jobPosition': 'Web Dev Intern',
'experience': '6 months',
'city': 'Bengaluru'
};
work.jobs.push(job);
console.log(work);
// jobs: Array
// 0: {employer: "ABC", jobPosition: "FrontEndEngineer", experience: "1 year", city: "Mumbai"}
// 1: {employer: "QWE", jobPosition: "Web Dev Intern", experience: "6 months", city: "Bengaluru"}