# Блок заданий "Задание, Java Script, Node JS:" (5) 5. Попробуйте проанализировать код и понять что делает следующая функция на javascript, т.е. что получит функция call_back в первом параметре. ```javascript function func(arr, call_back) { if(!Array.isArray(arr) || arr.some(it => parseInt(it)!=it || it < 0)) call_back(null, "Неверный формат входящих данных, должен быть массив положительных чисел"); let res = []; const f = (val) => { res.push(val); if(res.length==arr.length) call_back(res); } for(let i = 0; i < arr.length; i++) { setTimeout(f, arr[i], arr[i]); } } ``` ## Решение 5. Проанализировав код, можно прийти к выводу, что перед нами функция сортировки массива. Алгоритм заключается в том, чтобы в созданный пустой массив добавлять значения через промежуток времени равный добавляемому элементу. Таким образом, например, число 7 будет добавлено в общий массив через 7 ms, а следующее после семи 2 будет добавлено через 2 ms, таким образом, двойка, которая хоть и следовала за семёркой попадёт в массив раньше семёрки и будет корректно отсортирована.