Я работал, по крайней мере, с одним программистом, который думал, что return был специальным вызовом функции, и был удивлен, когда увидел, что мой код выполнил без парнеров.
appendTyping
, который выполняется немедленно, передавая массив и индекс 0
var elements = [1, 2, 3, 4, 5];
(function appendTyping (elements, index) {
var element = elements[index];
if (element == 3) $('div').append('typing');
else console.log(element);
if (++index < elements.length) {
setTimeout(function(){ appendTyping(elements, index); }, 2000);
}
})(elements, 0);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>
Вдохновленный Таплером, небольшая модификация - вот мой ответ.
var elements = [1, 2, 3, 4, 5,6,7,8];
(function appendTyping(elements, index) {
var element = elements[index];
if (++index <= elements.length) {
if (element == 3 || element == 6) {
$('div').append('typing....');
console.log(element);
setTimeout(function () { appendTyping(elements, index); }, 2000);
}
else {
$('div').append(index);
console.log(element);
appendTyping(elements, index);
}
}
})(elements, 0);