附加到Javascript对象

时间:2017-01-08 03:10:29

标签: javascript

我正在尝试创建一个数组对象。 我将其定义如下:

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:无法设置属性'雇主'未定义的

我做错了什么?

3 个答案:

答案 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"}