为了账号安全,请及时绑定邮箱和手机立即绑定

请教,js中如何在循环外使用循环内的变量

请教,js中如何在循环外使用循环内的变量

慕姐8265434 2019-07-15 12:08:19
var dataDetail = justep.xbl("dataDetail");// 主页中子表for ( var i in data2) {for ( var j = 0; j < dataDetail.getCount(); j++) {var rowid = dataDetail.getID(i);var v = dataDetail.getValue('fSP',rowid);if(data2[i].fSP==v){var n=dataDetail.getValue("fSCRKSL",rowid);var m=dataDetail.getValue("fYRKSL",rowid);var k=justep.String.toInt(m)+justep.String.toInt(n);}}dataDetail.newData();dataDetail.setValue("fSCRKSL",k);dataDetail.setValue("fGSMC", data2[i].fGSMC);dataDetail.setValue("fGYS", data2[i].fGYS);dataDetail.setValue("fSP", data2[i].fSP);dataDetail.setValue("fSL", data2[i].fSL);} 内层循环中的变量K,在外层循环中怎么获取啊?外层循环中取的K是undifined
查看完整描述

4 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

我先定义一个变量var g=0;
设置加载即运行,程序是有一个for循环,里面有一个鼠标事件函数,鼠标事件函数内也有个循环
然后把
console.log(g++);
这条语句放在三个地方,一个地方是for循环的大括号里,鼠标事件函数括号外,一个地方是鼠标事件函数括号里,鼠标事件内循环括号外,一个地方是鼠标事件内循环括号里
然后用浏览器打开,加载完成即运行函数,用控制台看结果。

结论是一开始运行没有触发鼠标事件函数的时候,for循环是会循环下去直至条件结束的,但因为没有触发鼠标事件,所以鼠标事件函数不会运行,但for循环的大括号里,鼠标事件函数括号外的console.log(g++);是可以运行,并会正常运行至直至条件结束。

当触发鼠标事件的时候,鼠标函数也是会正常运行,但for循环的大括号里,鼠标事件函数括号外的console.log(g++);不会运行,只会运行鼠标事件函数里面的语句。
一般来说,for循环只是充当定义多个对象的鼠标事件函数的作用,即使如果没有触发鼠标事件,也能完成循环。

查看完整回答
反对 回复 2019-07-15
?
MYYA

TA贡献1868条经验 获得超4个赞


if(data2[i].fSP==v){
var n=dataDetail.getValue("fSCRKSL",rowid);
var m=dataDetail.getValue("fYRKSL",rowid);
var k=justep.String.toInt(m)+justep.String.toInt(n);
dataDetail.setValue("fSCRKSL",k);
// 难道不是这样么
}


查看完整回答
反对 回复 2019-07-15
?
交互式爱情

TA贡献1712条经验 获得超3个赞


直接使用K就行了。

对于JS来说,for循环不是一个变量作用域,因此在for循环内部还是外部声明都是一样的。

比如

1

2

3

4

5

6

7

8

9

<script type="text/javascript">

//位置1

for(var i=0;i<5;i++){

  for(var j=0;j<3;j++){

    var k = '4';//这里的k等价于在位置1出var k;

  }

}

alert(k);//这里获取到的k是4

</script>

所以如果你获取的k是undefined,那么只有一种可能,就是没有进入if(data2[i].fSP==v){这个if条件内,这个条件不成立。


 

 


查看完整回答
反对 回复 2019-07-15
?
手掌心

TA贡献1942条经验 获得超3个赞

把它声明到循环外面

查看完整回答
反对 回复 2019-07-15
  • 4 回答
  • 0 关注
  • 2112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号