不想循环里面套循环,帮我看看怎么分开来解决
假如一个object
rows":[{"id":"32","name":"nam3e1","age":1},{"id":"32","name":"ana2me1","age":2},{"id":"32","name":"b3name1","age":1},{"id":"32","name":"cna3me1","age":3}]}
然后在一个table里面
这个嵌套循环是难免的..除非就是他们写的..第二层循环.你省略了..手动写好3个td
在或者弄个each方法来遍历..但最终原理还是嵌套循环..看着好看点吧..
推荐使用数组的forEach方法来遍历吧.这个是JS 1.6定义的规范.有些浏览器已经实现了.没实现的用下面的方法代替
if ( !Array.prototype.forEach ) {
Array.prototype.forEach = function(fn, scope) {
for(var i = 0, len = this.length; i < len; ++i) {
fn.call(scope, this[i], i, this);
}
}
}
参考网址https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach
[解决办法]
你是为了代码结构考虑还是什么?
把 列和行的输出分开如何?
[解决办法]
var se = "32,mnam3e1,9
[解决办法]
34,ngfssfe1,2
[解决办法]
33,ngdddd,7
[解决办法]
38,n655dd,3";
var as = se.replace(/([^\
[解决办法]
,]+),?/g,"<td>$1</td>");
as = "<table><tr>"+as.replace(/\
[解决办法]
/g,"</tr><tr>")+"</tr></table>";
document.write(as);
alert(as);
[解决办法]
首先你的数据量有多少? 1W行? 10w行? 有这个数据量 那么 你需要优化的就不是渲染代码了
要相信 计算机的能力
另外所谓的双循环 其实只是 一次迭代
也就是 枚举每个 obj
剩余的对每个obj的处理 还需要枚举吗? 那些key不都是固定的 直接引用就可以了