Javascript или JQuery: цикл многомерного объекта - PullRequest
3 голосов
/ 08 сентября 2011

Я только начал играть с JSON и создал этот пример.

var shows = {

    "ShowA": 
                {   "Date"      : "November 3-5, 2011",
                    "Phone"     : "111-111-1111",
                    "Location"  : "some location",
                    "url"       : "http://www.showA.com"
                },

    "ShowB": 
                {   "Date"      : "January 15-18, 2012",
                    "Phone"     : "222-222-2222",
                    "Location"  : "another location",
                    "url"       : "http://www.showB.com"
                }

};

Я выяснил, как получить доступ к каждому биту информации ... т.е.: предупреждение (показывает. ShowA.Date);

Однако я не могу понять, как зациклить весь объект шоу в порядке очередности каждого шоу и свойств каждого шоу. Нужно ли менять его на массив?

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

14 голосов
/ 08 сентября 2011

вы можете использовать для ... в цикле :

for(var key in shows) {
    if (shows.hasOwnProperty(key)) {
        alert(shows[key].Date);
    }
}

Важно отметить, что объект не имеет порядка сортировки, но массив имеет. Поэтому, если вы хотите отсортировать по датам, вам нужно использовать массив.

Также рекомендуется использовать Object.hasOwnProperty

5 голосов
/ 08 сентября 2011
for(show in shows){
     console.log(shows[show]);
}

Fiddle: http://jsfiddle.net/maniator/Wp3N9/

Дополнительные библиотеки не нужны ^ _ ^

0 голосов
/ 09 ноября 2017

Вот хороший и простой пример

/* A program to find how costly ur roommates are */
function myFatRoommates() {

/* Multidimentional Object */
var roommates = {
    ivar: {potatis: 10},
    johan: {mango: 20}
};

var marketprice = {
    ica : {potatis: 5, mango: 20},
    willys: {potatis: 2, mango:10}
}

/* variable with self invoking method */
var price = function (foodname, shopname, amount) {
     return (marketprice[shopname][foodname] * amount).toString();
}

/* A loop to decide how much fatties eat */
    for (var person in roommates){ // Looping through roommates
        for(var foodName in roommates[person]){ //looping through the food they eat
            var amount = roommates[person][foodName]; // getting the amount for food an individual roommate consumes 
            alert(person + " eats " + amount +" "+ foodName + " everyday     
                  which costs " + price(foodName, "ica", amount)+ "USD in    
                ICA "+ price(foodName, "willys", amount)+ "USD in Willys"); // Calculating and print out the result
        }
    }

}
myFatRoommates();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...