Показать сообщение отдельно
  #1 (permalink)  
Старый 14.08.2018, 23:07
Новичок на форуме
Отправить личное сообщение для Andreich1310 Посмотреть профиль Найти все сообщения от Andreich1310
 
Регистрация: 14.08.2018
Сообщений: 4

Анимация построения дерева массива.
Здравствуйте, в JS новичок. Притом, пока знаю только "голый".

Возникла потребность разложить массив
var arr = [0,1,[20,21,22,23],3,[40,[410,411],42],5];


В такую форму:

0
1
20,21,22,23
-20
-21
-22
3
40,410,411,42
-40
-410,411
--410
--411
- 42
5

Вроде бы получилось. Потребовалось визуализировать процесс разложения. Т.е.создать анимацию в которой поочереди будет отображаться новый элемент. Вот тут-то я и застрял. Вроде как это и есть "асинхронность" А вот как ее победить - всю голову сломал.

Вот собственно мой "код" :
<script>

		var arr = [0,1,[20,21,22,23],3,[40,[410,411],42],5];
		
		var l="";

		function f(x,i) {
			
			if (i<x.length) {
				
				l+=x[i]+"<br>";
				
				p.innerHTML=l;
				
				if (x[i].length)	{
					
					f(x[i],0);
					
				}

				i++;
				setTimeout (function ()	{
					
					f(x,i);
				}
				
				
				,100);	
		
			} 
	
		}
		

		setTimeout (function ()	{
			
			f(arr,0);
		}
		,200);

	</script>


Ребят, куда копать? Верю в вас!
Ответить с цитированием