Показать сообщение отдельно
  #28 (permalink)  
Старый 20.02.2011, 16:27
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Gvozd
Сделать из группы вложенных циклов, или из группы подряд идущих циклов, один единственный - вполне решаемая задача
Как Вы собрались объединять, например, это?
var arr = [3,4,5,6,7,8,9,0,1 /* and so on */], s = 0;
for(var i =0, length = arr.length; i < length; ++i){ // предварительные вычисления
  s += arr[i];
}

for(var i = 0, length = arr.length; i < length; ++i){ // самое то.
  arr[i] = (arr[i] / s * 100).toFixed(2) + '%';
}
alert([s, arr].join('\n'));

Сомневаюсь, что КМП можно записать одним циклом.

P.S. Грязные "хаки" вида
function indexOf(haystack, needle){
  var n = haystack.length,
       m = needle.length;
  var i = 0, j = 0, offset = 0;
  for(var k = 0, length = n * m; k < length; ++k){
    i = k / m | 0;
    j = k % m;
    if(haystack[i + offset] != needle[j]){
      offset = 0;
      k += m - j - 1;
    } else {
      ++offset;
      if(j == m - 1) return i;
    }
  }
  return -1;
}

var s1 = 'aababaO_o',  
    l1 = 'abaO', l2 = 'abac', l3 = 'aa', l4 = 'O_o';  
alert( [  
  [indexOf(s1, l1), s1.indexOf(l1)],
  [indexOf(s1, l2), s1.indexOf(l2)],
  [indexOf(s1, l3), s1.indexOf(l3)],
  [indexOf(s1, l4), s1.indexOf(l4)],
  [indexOf(s1, 'a'), s1.indexOf('a')]
].join('\n') );
не рассматриваем.
Ответить с цитированием