пройти (повторить) каждый элемент массива за определенное время?

#javascript #arrays #reactjs

Вопрос:

У меня есть массив, содержащий 200 элементов, например, от -100 до 100. Я хочу пройти или повторить весь этот массив за определенное время. например, я хочу пройти или повторить этот массив за 5 секунд или также за 1 минуту. это зависит от пользователя , который определяет, сколько времени потребуется для прохождения всего этого массива. Как я могу это сделать?

 const array = [-100,-99,-98....0....98,99,100];  function traverseArr(){ ....  }  

Комментарии:

1. разделите все свое время на длину массива и используйте setTimeout. Примечание: Время добавится к естественному времени итерации машины.

Ответ №1:

Вы можете взять функцию для интервала и рассчитать продолжительность для каждого элемента.

 function traverseArray(array, time, fn) {  let i = 0;  const handle = setInterval(() =gt; {  if (i lt; array.length) fn(array[i  ]);  else clearInterval(handle);  }, time / array.length);  }  traverseArray([5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5], 10000, v =gt; console.log(new Date().toISOString(), v)); 
 .as-console-wrapper { max-height: 100% !important; top: 0; }