我有一个JSON文件,用于存储导航面板(链接)的数据。简短的版本如下:
[
{
"category": "Pages",
"links": [
{
"url": "#",
"caption": "Account",
"dropdown": [
{
"url": "profile.html",
"caption": "Profile"
},
{
"url": "edit-profile.html",
"caption": "Edit Profile"
}
]
},
{
"url": "orders.html",
"caption": "Orders"
},
{
"url": "faq.html",
"caption": "FAQ"
}
]
},
...
]
因此,当我使用jQuery为这些链接构建HTML代码时,我有3个嵌套for
循环:
代码如下:
for (var i = 0; i < data.length; i++) {
...
for(var n = 0; n < data[i]["links"]; i++) {
...
for(var k = 0; k < data[i]["links"][n]["dropdown"]; k++) {
...
}
}
}
即使代码有效,我也听说嵌套for
循环不好(代码看起来也有点吓人)。有替代的方法吗?这种新方法会使代码运行更快吗?
假设您有:
您当前的解决方案是O(nmo)
。无论如何重新编写代码,都无法比现在更好地优化时间复杂度。这是因为您绝对需要访问每个元素一次,而优化超出O(nmo)
意味着您会跳过某些元素。
嵌套循环是不好的
这有点笼统。更具体地说,当不需要嵌套for循环时,嵌套for循环就不好了。在您的情况下,它们是必需的。
您可以重写以提高可读性,等等,但是您现在处于最佳状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句