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

1.6 KiB
Raw Permalink Blame History

Блок заданий "Задание, Java Script, Node JS:" (5)

  1. Попробуйте проанализировать код и понять что делает следующая функция на javascript, т.е. что получит функция call_back в первом параметре.
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]);
	}
}

Решение

  1. Проанализировав код, можно прийти к выводу, что перед нами функция сортировки массива. Алгоритм заключается в том, чтобы в созданный пустой массив добавлять значения через промежуток времени равный добавляемому элементу. Таким образом, например, число 7 будет добавлено в общий массив через 7 ms, а следующее после семи 2 будет добавлено через 2 ms, таким образом, двойка, которая хоть и следовала за семёркой попадёт в массив раньше семёрки и будет корректно отсортирована.