Показать сообщение отдельно
  #7 (permalink)  
Старый 06.09.2021, 08:51
Интересующийся
Отправить личное сообщение для uzlprog Посмотреть профиль Найти все сообщения от uzlprog
 
Регистрация: 04.09.2021
Сообщений: 11

Все равно столкнулся с проблемой. Код генерирует a один раз, то есть переменная у меня почему-то не меняется, если я например забью ее значением массив:

var a;
function f(i = 0) {
  if (i == arr.length) i = 0;
  a = arr[i++];
  setTimeout(() => {
    f(i);
  }, 1000);
}

function N1() {
let c = 0;
let arr2 = [];
let N = 100;
for (var k = 1; k <= N; k++) {
   arr2.push(a);
   document.write('Item: ' + arr2[c++] + ' of ' + arr2.length + '<br/>');
}
}


У меня выдает список, в котором все 100 элементов равны одному и тому же значению переменной a.

Соответственно, как я понимаю, чтобы динамически обращаться к первоначальному коду, нужно его обернуть в функцию,

function N0() {
var a;
function f(i = 0) {
  if (i == arr.length) i = 0;
  a = arr[i++];
  setTimeout(() => {
    f(i);
  }, 1000);
}
return(a);
}

function N1() {
let c = 0;
let arr2 = [];
let N = 100;
let b;
for (var k = 1; k <= N; k++) {
   b =  N0();
   arr2.push(a);
   document.write('Item: ' + arr2[c++] + ' of ' + arr2.length + '<br/>');
}
}


Вообще не робит(((...
Ответить с цитированием