附加到Javascript对象
我正在尝试创建一个数组对象。 我将其定义如下:附加到Javascript对象,javascript,Javascript,我正在尝试创建一个数组对象。 我将其定义如下: work = { 'jobs': [{ 'employer': 'ABC', 'jobPosition': 'FrontEndEngineer', 'experience': '1 year', 'city': 'Mumbai' }] }; 因为它是一个数组,所以我尝试将它作为一个数组附加到下一个位置 work.jobs[1].employer="QWE"; work.job
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:无法设置未定义的属性“雇主”
我做错了什么?尝试推送:
new_job = {
'employer': 'QWE',
'jobPosition': 'Web Dev Intern',
'experience': '6 months',
'city': 'Bengaluru'
}
work.jobs.push(new_job)
尝试推送:
new_job = {
'employer': 'QWE',
'jobPosition': 'Web Dev Intern',
'experience': '6 months',
'city': 'Bengaluru'
}
work.jobs.push(new_job)
work.jobs[1]
尚不存在,当前未定义。因此,访问它的.employer
属性会抛出错误。使用此选项初始化工作。作业[1]
:
work.jobs[1] = {
'employer': 'QWE',
...
};
或者
var工作={
“工作”:[{
“雇主”:“ABC”,
“工作职位”:“前端工程师”,
“经验”:1年,
“城市”:“孟买”
}]
};
工作、工作、推动({
“雇主”:“QWE”,
“jobPosition”:“网络开发实习生”,
“经验”:6个月,
“城市”:“班加罗鲁”
});
控制台日志(工作)代码>工作。作业[1]
尚不存在,当前未定义。因此,访问它的.employer
属性会抛出错误。使用此选项初始化工作。作业[1]
:
work.jobs[1] = {
'employer': 'QWE',
...
};
或者
var工作={
“工作”:[{
“雇主”:“ABC”,
“工作职位”:“前端工程师”,
“经验”:1年,
“城市”:“孟买”
}]
};
工作、工作、推动({
“雇主”:“QWE”,
“jobPosition”:“网络开发实习生”,
“经验”:6个月,
“城市”:“班加罗鲁”
});
控制台日志(工作)
您可以使用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"}
您可以使用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"}
我试图在数组中附加另一个对象,而不是替换它在设置其属性之前,请执行以下操作:1)使用所需属性初始化一个新对象并附加它;2)创建一个空对象,附加它,然后在初始帖子中尝试使用该代码。问题是work.jobs[1]
不存在,因此未定义。这就是为什么会出现错误。我试图在数组中附加另一个对象,而不是替换它。您必须设置work.jobs[1]={}在设置其属性之前,请执行以下操作:1)使用所需属性初始化一个新对象并附加它;2)创建一个空对象,附加它,然后在初始帖子中尝试使用该代码。问题是work.jobs[1]
不存在,因此未定义。这就是为什么你会犯这样的错误。