<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.请各位大侠指点迷津!!!!!!!!

解决方案 »

  1.   

    <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>
      

  2.   

    但是我现在想了解一下eval的用法,再说按你那样写多复杂呀!!!!!!
      

  3.   

    <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>
    或者这样试试
      

  4.   

    首先,你写的那个c 都没有赋初值,怎么运算呢?
    还有,return放在循环内,只会让循环执行一次就结束的,不会产生你要的结果。
      

  5.   

    <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>
      

  6.   

    借你们的思想,我想出来了是这样的
     <script>
      function a(n)
      {
    var b;
    for(var i=0;i<n;i++)
    {
    alert(eval(["b"+i])+"="+i);
    }
      }
     a(3);
      </script>