日期:2014-05-16  浏览次数:20493 次

请各位js高手帮忙
<script>
  function a(n)
  {
for(var i=0;i<n;i++)
{
var c=c+","+eval("var b"+i+"="+i);
return c;
}
  }
  alert(a(3));
  </script>
这里的输出结果怎么是undefined呀,我想要的是b0=0,b1=1,b2=2.请各位大侠指点迷津!!!!!!!!

------解决方案--------------------
JScript code
<script>
 function a(n){
    for(var i=0;i<n;i++){
      window["b"+i]=i;
      //eval("b"+i+"="+i); 不建议用
    }
  }
  a(3);
alert(b0);
alert(b1);
alert(b2);
</script>

------解决方案--------------------
<script type="text/javascript">
function a(n){
var c=[];
for(var i=0;i<n;i++){
c["b"+i]=i;
}
return c;
}
var x=a(3);
for(var i in x){
document.write(i+":"+x[i]+"<br/>");
}

</script>
或者这样试试
------解决方案--------------------
首先,你写的那个c 都没有赋初值,怎么运算呢?
还有,return放在循环内,只会让循环执行一次就结束的,不会产生你要的结果。
------解决方案--------------------
<script>
function a(n)
{
var b;
for(var i=0;i<n;i++)
{
var c=c+","+eval("b"+i+"="+i);
}
return c;
}
alert(a(3));
</script>