附加到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"}

我试图在数组中附加另一个对象,而不是替换它work.jobs[1]
不存在,因此
未定义。这就是为什么会出现错误。我试图在数组中附加另一个对象,而不是替换它。您必须设置
work.jobs[1]={}work.jobs[1]
不存在,因此
未定义。这就是为什么你会犯这样的错误。