Я хочу, чтобы мои divs сортировались, но в этом коде он проходит только один цикл. Как я могу сделать это, чтобы закончить как циклы, так и мои divs отсортированы?элементы массива подкачки в вложенном цикле с задержкой
var arr = [4, 7, 1, 9, 8, 13, 6, 11];
function showarray() {
for (var i = 0; i < arr.length; i++) {
var divSort = document.createElement("div");
divSort.style.width = 30 + "px";
divSort.style.height = 30 + "px";
divSort.style.background = "yellow";
divSort.style.display = "inline-block";
divSort.style.margin = "10px";
divSort.id = arr[i];
divSort.innerHTML = arr[i];
document.body.appendChild(divSort);
}
}
showarray();
function func() {
for (var j = (arr.length - 1); j >= 0; j--) {
for (var i = 1; i <= j; i++) {
if (arr[i] < arr[i - 1]) {
doSetTimeout(i, j);
};
};
}
function doSetTimeout(i, j) {
setTimeout(function() {
$("#" + arr[i]).insertBefore("#" + arr[i - 1]);
}, j * i * 100);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="func()">Click</button>
Так что вы хотите выполнить сортировку анимированной или просто отсортировать 'div' элементы? Какой смысл вашей задержки –
@ RamisWachtler анимированная сортировка. Я хочу использовать задержку, чтобы показать, как работает алгоритм. – dummy
Просьба указать правильное объяснение ожидаемого поведения. Код, который не работает, не является заменой для объяснения того, что вы хотите, чтобы код выполнял – charlietfl