首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

不想循环里面套循环,帮小弟我看看如何分开来解决

2013-07-04 
不想循环里面套循环,帮我看看怎么分开来解决假如一个objectrows:[{id:32,name:nam3e1,age:1},{

不想循环里面套循环,帮我看看怎么分开来解决
假如一个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不都是固定的 直接引用就可以了

热点排行