Ваша функция вернет undefined
. Вам нужно вернуть arr
из функции.
Если вы не хотите изменять исходный массив, скопируйте исходный массив, используя slice()
.В приведенном ниже случае это не имеет значения, поскольку массивы не хранятся ни в одной переменной.
function bubbleSort(arr) {
arr = arr.slice()
var swapped;
do {
swapped = false;
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
} while (swapped)
return arr;
}
console.log(bubbleSort([4, 25, 1, 6, 2])); // [ 1, 2, 4, 6, 25 ]
console.log(bubbleSort([13, 1, 9, 38, 8, 3, 1])); // [ 1, 2, 4, 6, 25 ]