[英]Iterating over objects in a JSON array with JavaScript
我正在尝试重写.php多维数组和foreach循环(在http://tutorialzine.com/2010/03/sponsor-wall-flip-jquery-中的“ Sponsor Flip Wall” jQuery示例中使用的那个) css / ),因为不幸的是我被迫使用的Web主机不支持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循环中的for循环。
我一直在寻找如何迭代JSON结构的答案? 但是似乎它们的数组仅包含两个值-一个对象和一个键。 我的每个对象都有多个字段,所以我不认为它完全适用吗? 否则,我不知道如何扩展?
我正在尝试重新创建.php foreach循环:
foreach($sponsors as $company)
{
echo $company[0] . ":" . $company[1] . "(" . $company[2] . ")"; //eg.
}
有任何想法吗? (如果可能的话,我希望我的答案完全是用JavaScript而不是jQuery编写的)
for( var i = 0; i < sponsors.length; i++) {
var sponsor = sponsors[i];
console.log(sponsor.name);
}
使用标准的for循环会很好地工作,只要您知道数据的键名即可!
尝试:
sponsors.forEach(function(sp) {
console.log(sp.name);
console.log(sp.description);
});
忘记for (var i = ...
和for i in ...
并使用underscore.js可以在所有浏览器中使用,并且易于使用。因此,例如使用_.each()
:
_(array).each(function(item) {
// Works everywhere
});
看看这个问题并在这里回答,与您要问的非常相似。
你可以试试这个
for( var i = 0; i < sponsors.length; i++) {
var sponsor = sponsors[i];
document.writeln(sponsor.name + ":" + sponsor.description + "(" + sponsor.website + ")");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.