2011-12-27 84 views
0

如何以第一個InvoiceNo的值不會被第二個值替換的方式表示這個javascript對象定義?定義一個JavaScript對象屬性

編輯<最終我想要一個名爲myObject的對象,它包含一個發票號數組。每一個發票號將有一個相關的票據和船舶數量...

var myObject = {}; 

myObject = { "InvoiceNo" : 44444, 
      "Shipping": 
       { 
        "ShipTo": 22345 , "BillTo": 43456 
       } 
      } 

// some more code here that would capture user input or a data from a remote data feed... 

myObject = { "InvoiceNo" : 555555, 
      "Shipping": 
       { 
        "ShipTo": 32345 , "BillTo": 33456 
       } 
      } 
+1

對不起,您能否澄清您要完成的工作?從我看到的情況來看,您可以將第二張發票分配給不同的變量,比如'myOtherObject'。 – sczizzo 2011-12-27 22:59:52

+0

你在尋找一個數組嗎?這可能是你正在談論的:'var objects = new Array();'Then' objects.push(myObject);'雖然......不知道...... – 2011-12-27 23:02:05

+1

你可以創建一個對象數組 - 持有不同的實例。 – Bakudan 2011-12-27 23:03:10

回答

0

你可以做一些簡單的像這樣:

var myObject = [ 
    { 
     "InvoiceNo": 44444, 
     "Shipping": { "ShipTo": 22345, "BillTo": 43456 } 
    }, 
    { 
     "InvoiceNo": 555555, 
     "Shipping": { "ShipTo": 32345, "BillTo": 33456 } 
    } 
]; 
console.log(myObject[0].InvoiceNo); // 0 - the first object inside the array 
console.log(myObject[0].Shipping.ShipTo); // access the "ShipTo" property of the first element 

對於更復雜的東西JSON WikipediaJSONLint驗證。

JsFiddle demo

1

據我所知,你正在尋找這...

var myObject = { 
    "44444": {"ShipTo": 22345 , "BillTo": 43456 }, 
    "555555":{"ShipTo": 32345 , "BillTo": 33456 } 
}; 

myObject[ "777777" ] = {"ShipTo": 88888 , "BillTo": 99999 } 

還是這個...

var myObject = { 
    "invoices": [ 
     {"invoice":"44444", "ShipTo": 22345 , "BillTo": 43456 }, 
     {"invoice":"555555", "ShipTo": 32345 , "BillTo": 33456 } 
    ] 
}; 

myObject.invoices.push({"invoice":"777777", "ShipTo": 88888 , "BillTo": 99999 }) 
+0

是的,這是正確的方向!但是如果我把它分成兩個或更多的陳述,每個新陳述都會破壞前一個陳述。 – 2011-12-27 23:09:59

+0

@MustaphaGeorge:所以你需要知道如何添加一個項目到一個對象? – 2011-12-27 23:10:32

+0

myObject.myItem = myValue; – 2011-12-27 23:12:22

1

您在初始化myObject時無需定義任何發票。您可以動態地在以後添加他們:

var myObject = { 
    invoices: [] 
} 

myObject.invoices.push({"invoice":"44444", "ShipTo": 22345 , "BillTo": 43456 }); 
myObject.invoices.push({"invoice":"555555", "ShipTo": 32345 , "BillTo": 33456 }); 
+0

這更好。您正在預先定義一個具有數組的對象,然後填充數據存在的時間。太好了! – 2011-12-27 23:20:59

相關問題