определение свойств объекта JavaScript - PullRequest
0 голосов
/ 28 декабря 2011

Как можно выразить это определение объекта javascript таким образом, чтобы значение первого InvoiceNo не заменялось вторым значением?

EDIT <В конечном счете, я хочу объект с именем myObject, который содержит массив номеров счетов. Каждый номер счета-фактуры будет иметь соответствующий счет и номер судна ... </p>

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 
                }
            }

Ответы [ 3 ]

1 голос
/ 28 декабря 2011

Вам не нужно указывать счета-фактуры во время инициализации myObject. Вы можете динамически добавить их позже:

var myObject = { 
    invoices: []
}

myObject.invoices.push({"invoice":"44444", "ShipTo": 22345 , "BillTo": 43456 });
myObject.invoices.push({"invoice":"555555", "ShipTo": 32345 , "BillTo": 33456 });
1 голос
/ 28 декабря 2011

Насколько я могу судить, вы ищете это ...

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 голосов
/ 28 декабря 2011

Вы можете сделать что-то простое, как это:

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 Википедия и JSONLint для проверки.

JsFiddle demo

...