Лишняя итерация цикла for
От: don_  
Дата: 24.11.10 11:21
Оценка: 40 (1) :)
Добрый день.
При данном обходе массива массивов в цикле, совершается лишняя итерация.
Пример:
<html>
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
  <style>
  </style>
  <script type="text/tiscript">
  function self.ready()
  {
    var arr=[["txt1"],["txt2"]];
    for (var (index,data) in arr)
    {
      stdout<<index<<" = индекс первого цикла "<<data<<"  = данные\n";
      for (var u in data)
        continue;
    }
  }
 </script>
</head>
<body>
</body>
</html>


лог:
0 = индекс первого цикла txt1 = данные
1 = индекс первого цикла txt2 = данные
0 = индекс первого цикла undefined = данные


если вложенный цикл вызвать с получением не только данных, но и индекса
for (var (u,v) in data)

то лишняя итерация в родительском цикле не совершается.
лог:
0 = индекс первого цикла txt1 = данные
1 = индекс первого цикла txt2 = данные
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.