我正在尝试在JSON / JavaScript中重写.php多维数组和foreach循环(在http://tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/中找到的“Sponsor Flip Wall”jQuery示例中使用的循环),不幸的是Web主机I我被迫使用没有PHP支持。
该数组最初看起来如下:
$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/" },
];
但是我对foreach循环感到困惑,因为我不相信JavaScript有直接的比较?经过研究,我似乎需要使用jQuery $。each 或for循环中的循环。
我正在查看How do I iterate over a JSON structure?的答案,但似乎他们的数组只包含两个值 - 一个对象和一个键。我的每个对象有多个字段,所以我认为它不完全适用?或者如果确实如此,我不知道如何扩展它?
我试图重新创建的.php foreach循环:
foreach($sponsors as $company)
{
echo $company[0] . ":" . $company[1] . "(" . $company[2] . ")"; //eg.
}
有什么想法吗? (我希望我的答案纯粹是用JavaScript编写的,而不是jQuery,如果可能的话)
答案 0 :(得分:1)
for( var i = 0; i < sponsors.length; i++) {
var sponsor = sponsors[i];
console.log(sponsor.name);
}
使用标准for循环将很有效,让您知道数据的密钥名称!
答案 1 :(得分:1)
尝试:
sponsors.forEach(function(sp) {
console.log(sp.name);
console.log(sp.description);
});
答案 2 :(得分:1)
忘记
for (var i = ...
和
for i in ...
并使用underscore.js
它适用于所有浏览器,易于使用。所以只需使用例如_.each()
:
_(array).each(function(item) {
// Works everywhere
});
答案 3 :(得分:0)
看看这个问题并在这里回答,与你提出的问题非常相似。
答案 4 :(得分:0)
你可以试试这个
for( var i = 0; i < sponsors.length; i++) {
var sponsor = sponsors[i];
document.writeln(sponsor.name + ":" + sponsor.description + "(" + sponsor.website + ")");
}