我试图循环一个非常简单的数组来创建一个菜单。我已经解决了所有问题,但尚未确定下来。
这是我的剧本:
var json_data = [["Womens","/womens"],["Best Sellers","/best-sellers"]];
var json_length = json_data.length;
var inner_length = 0;
for (var i = 0; i<json_length; i++)
{
inner_length = json_data[i].length;
for( var j = 0; j<inner_length; j++ ){
var innerData = json_data[i][j];
var data = '<a href="' + json_data[j][1] + '">' + json_data[j][0] + '</a><br/>';
//alert(data);
$("#content").append(data);
}
}
基本HTML:
<div id="content">
</div>
当我移动代码以在第一个for循环(而不是第二个)中附加到我的div时,第二个对象的数据显示两次而不是第一个然后第二个。当前代码显示第一个和第二个对象的数据,但由于位于第二个for循环内部而重复它。我确信有一个简单的解决方案,但我不知所措。
答案 0 :(得分:3)
您可以使用 forEach() 更轻松地遍历数组:
json_data.forEach(function(item) {
var data = '<a href="' + item[1] + '">' + item[0] + '</a><br/>';
$("#content").append(data);
});
答案 1 :(得分:1)
更新了你的小提琴,删除了不必要的循环:
https://jsfiddle.net/79k32o1j/4/
for (var i = 0; i<json_length; i++) {
var data = '<a href="' + json_data[i][1] + '">' + json_data[i][0] + '</a><br/>';
$("#content").append(data);
}