"+i);(i,obj[i],url);8}9//forEach⽅法h(function(v " />
递归中,调⽤forEach⽅法问题
1functiontraver(objNmae,obj,url){
2url=url||objNmae;
3if(typeofobj==="object"){
4//forin⽅法
5for(letiinobj){
6url+=("=>"+i);
(i,obj[i],url);
8}
9//forEach⽅法
h(function(value,index){
11url+=("=>"+index);
(index,value,url);
13});
14}elif(typeofobj==="string"||typeofobj==="number"){
(url+objNmae+":"+obj);
16return;
17}
18}
forin⽅法和forEach⽅法,⽅法的功能是同样的,就是遍历⼀个对象集,并且输出对象中所有末端元素的路径。
接下来我们对下⾯的这个对象进⾏遍历
varitg_data=
[{"itg_num":"1200","itg_category":"rew_gold","itg_reward_num":"1","itg_sum_num":"661","itg_place":"","pic":"Uploadsgamereward3572
","goods_unit":"u679a","goods_name":null},
{"itg_num":"1400","itg_category":"rew_goods","itg_reward_num":"4","itg_sum_num":"656","itg_place":"fresh","pic":"UploadsUploadsShop2017-07-
","goods_unit":"u679a","goods_name":"u65e0u6297u571fu9e21u86cb"},
{"itg_num":"1600","itg_category":"rew_gold","itg_reward_num":"2","itg_sum_num":"555","itg_place":"","pic":"Uploadsgamereward3572
","goods_unit":"u679a","goods_name":null},
{"itg_num":"1800","itg_category":"rew_goods","itg_reward_num":"8","itg_sum_num":"492","itg_place":"fresh","pic":"UploadsUploadsShop2017-07-
","goods_unit":"u679a","goods_name":"u65e0u6297u571fu9e21u86cb"},
{"itg_num":"2500","itg_category":"rew_goods","itg_reward_num":"1","itg_sum_num":"555","itg_place":"fresh","pic":"UploadsUploadsShop2017-06-
","goods_unit":"u53ea","goods_name":"u6bcdu9e21uff08u6563u517buff09"}];
forin⽅法
但是在这⾥forEach⽅法会报错,
提⽰最⼤调⽤栈⼤⼩超过。但是使⽤forin就没有这样的问题
由此可见,forEach在递归中因为,有些对象树过深,对导致其堆栈溢出,forEach不适合⽤在递归中,可以使⽤forin
本文发布于:2023-01-04 07:39:32,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/89509.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |