praca-test-tasks/5.nodejs_js/readme.md
2023-03-12 22:27:07 +03:00

24 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Блок заданий "Задание, 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, таким образом, двойка, которая хоть и следовала за семёркой попадёт в массив раньше семёрки и будет корректно отсортирована.