老师,有一个forEach()的问题请教
来源:3-2 项目作业
A拨云见雾
2020-11-13 16:31:09
# 具体遇到的问题
老师,我想问下为什么用forEach就可以读取并加载json数据,用双层for循环就不行?代码见下方,还有老师能不能讲解下forEach和for循环的区别?
# 尝试过的解决思路和结果
我试着用简单的数组循环分析,例:
var arr1=[1,2],arr2=[3,4];
var obj = [arr1,arr2];
for(var i=0; i<obj.length; i++){
var item = obj[i];
for(var j=0; j<item.length; j++){
console.log(item[j])
}
}
用forEach和双层for循环的方法似乎都可以成功
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
//不报错,但是用双层for循环为什么不能成功读取json数据,而用forEach就可以
function getOthers(data){
var arr = data.discounts2;
var othertmpl = '<div class="other-info">'+
'<img src=$icon_url alt="" class="others-tag">'+
'<span class="others-desc">$info</span>'+
'</div>';
var len = arr.length;
var str = '';
for(var i = 0; i < len; i++){
var item = arr[i];
for(var j = 0;j < item.length; j++){
var othertmpl = '<div class="other-info">'+
'<img src=$icon_url alt="" class="others-tag">'+
'<span class="others-desc">$info</span>'+
'</div>';
othertmpl = othertmpl.replace('$icon_url',item.icon_url).replace('$info',item.info);
str += othertmpl;
}
}
return str;
}
// 用forEach方法可以成功读取加载数据
function getOthers(data){
var arr = data.discounts2;
var othertmpl = '<div class="other-info">'+
'<img src=$icon_url alt="" class="others-tag">'+
'<span class="others-desc">$info</span>'+
'</div>';
var str = '';
arr.forEach(function(item,index){
var _str = othertmpl.replace('$icon_url',item.icon_url).replace('$info',item.info);
str += _str;
})
return str;
}
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好,针对同学的问题解答如下:
1、forEach是for循环的简化写法,forEach遍历数据时,代码书写起来比较简单,它俩的区别就是在遍历比较复杂的数据时,for循环的性能比forEach高,但是目前阶段,遍历数据都是相对比较简单的,体现不出来差别,同学了解下这个区别就可以了。
2、只有同学的部分代码,无法准确的测试与定位问题,建议:
(1)提交作业,标注上你的问题,批作业的老师会针对同学的完整代码,给出详细的修改建议,并整理成文档发送给同学。
(2)新建提问,将你写的完整代码全部粘贴过来,老师帮助同学测试下代码。
祝学习愉快~
相似问题