2017-02-28 118 views
0

我很喜欢用对象进行新的工作,并且无论我如何尝试,我都无法使其工作。将元素添加到具有多个属性的对象

我的想法是,我想像对待数据库表一样对待printObj,然后不断向其中添加“记录”。 (后来的“更新”中的“记录”,最终环通都使它们在一个HTML结果)

但我不断收到遗漏的类型错误: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); 
} 

回答

1

唐't做push。这是为Arrays。与性能直接创建,像

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

如果你想添加额外的,不喜欢

printObj.newProp = val; 

首先,了解Objects完全。这site将帮助您

+0

感谢您的联系 - 现在我看到了差距。伟大的网站btw! – torbenrudgaard

1

你真正需要的一个数组,你创建一个这样其中:

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);

+0

Ahhh谢谢 - 我需要再研究一些对象,不断地混淆两个:) – torbenrudgaard