简体   繁体   English

向具有多个属性的对象添加元素

[英]Adding elements to an object with multiple properties

Im pretty new working with objects, and I just cant seem to get this to work no matter how I try it. 我正在使用对象,这是很新的东西,无论我如何尝试,我似乎都无法使它正常工作。

My idea is that I want to treat printObj just like a database-table and then keep adding "records" to it. 我的想法是我想像对待数据库表一样对待printObj,然后继续向其添加“记录”。 (then later "updating" the "records" and eventually loop thru all rendering them in an HTML result) (然后稍后“更新”“记录”,并最终循环遍历所有记录,将它们呈现为HTML结果)

But I keep getting Uncaught TypeError: printObj.push is not a function 但是我不断收到Uncaught TypeError:printObj.push不是一个函数

var printObj = new Object();

printObj.push({
    property: 'WAT-606',
    project: 'Wong Amat Tower',
    year: 2017,
    month: 1,
    bookedPct: 52
});

for (var i=0; i<10; i++) {
    var addObj = new Object();
    addObj["property"] = 'WAT-606';
    addObj["project"] = 'Wong Amat Tower';
    addObj["year"] = 2017;
    addObj["month"] = 1;
    addObj["bookedPct"] = 52+i;
    printObj.push(addObj);
}

Don't do push . 不要push It is for Arrays . 它用于Arrays Directly create with properties, like 直接使用属性创建,例如

var printObj = {
    property: 'WAT-606',
    project: 'Wong Amat Tower',
    year: 2017,
    month: 1,
    bookedPct: 52
}

If you want to add additional, do like 如果要添加其他,请喜欢

printObj.newProp = val;

First, learn about Objects completely. 首先,全面了解Objects This site will help you 网站将为您提供帮助

You are really looking for an array, which you create like this: 您实际上正在寻找一个数组,您可以这样创建:

 var printArr = []; printArr.push({ property: 'WAT-606', project: 'Wong Amat Tower', year: 2017, month: 1, bookedPct: 52 }); for (var i=0; i<10; i++) { var addObj = {}; addObj.property = 'WAT-606'; addObj.project = 'Wong Amat Tower'; addObj.year = 2017; addObj.month = 1; addObj.bookedPct = 52+i; printArr.push(addObj); } console.log(printArr); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM