2017-02-28 120 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