Javascript和变量范围

时间:2011-05-27 11:13:19

标签: javascript

我需要创建一个二维数组来收集我的jsp中的值。为了填充二维数组我正在使用像这样的代码

 <script language="JavaScript">
     var row = 0;
     var multiDimenArray = new Array();
 </script>
 <c:forEach var="items" items="${item}" varStatus="status">
      ............
      <script language="JavaScript">
          multiDimenArray [row] = new Array();
          var column = 0;
          row++;
     </script>
     <c:forEach var="nestedItems" items="${nestedItem}" varStatus="status">
        ............
           <script language="JavaScript">
                multiDimenArray [row][column] = "some value";
                column++;
           </script>

但是在第三个脚本块中,当我尝试分配值时,我得到一个JS错误,说明变量行是未定义的。是否可以在JS中的脚本块之间传递变量?

1 个答案:

答案 0 :(得分:2)

你得到的是因为你在第三个脚本运行之前递增了行。

因此,当您尝试运行multiDimenArray [row][column] = "some value";时,行实际上等于1而不是0。

您需要在分配列后移动row++