2013-06-11 2 views
0

Я пытаюсь переписать многомерный массив и цикл foreach .php (тот, который используется в примере jQuery спонсора, найденном в http://tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/) в JSON/JavaScript, as к сожалению, веб-хост, которого я вынужден использовать, не поддерживает PHP.Итерация над объектами в массиве JSON с использованием JavaScript

Массив первоначально выглядел следующим образом:

$sponsors = array(
array('facebook','The biggest social network in the world.','http://www.facebook.com/'), 
array('adobe','The leading software developer targeted at web designers and developers.','http://www.adobe.com/'), 
array('microsoft','One of the top software companies of the world.','http://www.microsoft.com/') 
); 

и теперь у меня есть следующие:

var sponsors = [ 
    { "name": "facebook", "description": "The biggest social network in the world.", "website": "http://www.facebook.com/" }, 
    { "name": "adobe", "description": "The leading software developer targeted at web designers and developers.", "website": "http://www.adobe.com/" }, 
    { "name": "microsoft", "description": "One of the top software companies of the world.", "website": "http://www.microsoft.com/" }, 
]; 

Однако я озадачен в цикле Еогеасп, так как я не верю, что JavaScript имеет прямое сравнение? При исследовании мне кажется, что мне нужно будет использовать jQuery $ .each или для циклов внутри циклов.

Я искал ответ How do I iterate over a JSON structure?, но кажется, что их массив содержит только два значения - объект и ключ. У меня есть несколько полей на объект, поэтому я не думаю, что это полностью применимо? Или, если это так, я не знаю, как расширить его?

.php цикл Еогеасп Я пытаюсь воссоздать:

foreach($sponsors as $company) 
    { 
     echo $company[0] . ":" . $company[1] . "(" . $company[2] . ")"; //eg. 
    } 

Есть идеи? (Я предпочел бы мой ответ был написан исключительно в JavaScript, в отличие от JQuery, если это возможно)

ответ

0

Вы можете попробовать это

for(var i = 0; i < sponsors.length; i++) { 
    var sponsor = sponsors[i]; 
    document.writeln(sponsor.name + ":" + sponsor.description + "(" + sponsor.website + ")");   
} 
+1

Ctrl + C, Ctrl + V ...... – rorypicko

+0

Чистейший, простейший ответ мне предоставили ... спасибо. – mpdc

+0

Ваш приветственный приятель – DevZer0

1
for(var i = 0; i < sponsors.length; i++) { 
    var sponsor = sponsors[i]; 
    console.log(sponsor.name); 
} 

Используя стандарт для контура будет хорошо работать, предоставляя вам знать имена ключей для данных!

1

Try:

sponsors.forEach(function(sp) { 
    console.log(sp.name); 
    console.log(sp.description); 
}); 
1

Забудьте for (var i = ... и for i in ... и использовать underscore.js Он работает во всех браузерах и прост в использовании , Так что просто использовать, например _.each():

_(array).each(function(item) { 
    // Works everywhere 
});