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

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

慕姐8265434
浏览 2003回答 4
4回答

智慧大石

我先定义一个变量var g=0;设置加载即运行,程序是有一个for循环,里面有一个鼠标事件函数,鼠标事件函数内也有个循环然后把console.log(g++);这条语句放在三个地方,一个地方是for循环的大括号里,鼠标事件函数括号外,一个地方是鼠标事件函数括号里,鼠标事件内循环括号外,一个地方是鼠标事件内循环括号里然后用浏览器打开,加载完成即运行函数,用控制台看结果。结论是一开始运行没有触发鼠标事件函数的时候,for循环是会循环下去直至条件结束的,但因为没有触发鼠标事件,所以鼠标事件函数不会运行,但for循环的大括号里,鼠标事件函数括号外的console.log(g++);是可以运行,并会正常运行至直至条件结束。当触发鼠标事件的时候,鼠标函数也是会正常运行,但for循环的大括号里,鼠标事件函数括号外的console.log(g++);不会运行,只会运行鼠标事件函数里面的语句。一般来说,for循环只是充当定义多个对象的鼠标事件函数的作用,即使如果没有触发鼠标事件,也能完成循环。

MYYA

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);// 难道不是这样么}

交互式爱情

直接使用K就行了。对于JS来说,for循环不是一个变量作用域,因此在for循环内部还是外部声明都是一样的。比如123456789<script&nbsp;type="text/javascript">//位置1for(var&nbsp;i=0;i<5;i++){&nbsp;&nbsp;for(var&nbsp;j=0;j<3;j++){&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;k&nbsp;=&nbsp;'4';//这里的k等价于在位置1出var&nbsp;k;&nbsp;&nbsp;}}alert(k);//这里获取到的k是4</script>所以如果你获取的k是undefined,那么只有一种可能,就是没有进入if(data2[i].fSP==v){这个if条件内,这个条件不成立。&nbsp;&nbsp;

手掌心

把它声明到循环外面
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript