请用async 或 Q 优化以下的蚯蚓 | 金字塔 | callback hell。
发布于 11 年前 作者 think2011 5678 次预览 最后一次回复是 11 年前 来自
var temp = [];
for(var i=0; i <= data.length; i++) {
temp.push({
id : data[i].id,
chk: data[i].chk === true ? '1' : '2'
});
for(var j=0; j <= data[i].children.length; j++) {
temp.push({
id : data[i].children[j].id,
chk: data[i].children[j].chk === true ? '1' : '2'
});
for(var k=0; k <= data[i].children[j].children.length; k++) {
temp.push({
id : data[i].children[j].children[k].id,
chk: data[i].children[j].children[k].chk === true ? '1' : '2'
});
}
}
}
14 回复
现在也就我这样的闲人来算算了
####工具util.js
####主进程main.js
####计算进程compose.js
@tulayang 没看懂哈~
callback都没有,还callback hell。
@JacksonTian 哈哈哈哈哈
@tulayang 哈哈哈哈哈哈哈哈哈哈,兄弟真有闲情
递归都不会用,唉
一头雾水
用递归不是很简单的么,修改原程序 for(var i=0; i <= data.length; i++) 中 i<data.length , 小于代替小于等于,同j,k循环过程。
@JacksonTian 哈哈,你说的对!
@zensh 是的,我是新手。
@bsspirit 谢谢,后来我是用这种方式解决的。
@zensh 对了,很希望angularjs中文站能有搜索功能,什么时候有空升级一下好吗? 这会很有帮助。
var temp = []; function fun(data){ for(var i = 0, len = data.length; i < len; i++){ temp.push({ id : data[i].id, chk: data[i].chk === true ? ‘1’ : ‘2’ }); if(data[i].children){ fun(data[i].children) } } }
没有callback,就是基本的循环嵌套.