Метод
sort()
изменяет сам массив.
Когда вызываете функцию
myFunction()
без второго аргумента, возвращается массив как есть. Как отсортировали его предыдущим вызовом.
Лучше делать копию массива, и сортировать-возвращать уже её:
function myFunction(arr, str) {
const sortedArray = arr.slice(); // копия, чтобы не менять оригинал
if (str === 'asc') {
sortedArray.sort((a, b) => a - b);
} else if (str === 'dsc') {
sortedArray.sort((a, b) => b - a);
}
return sortedArray;
}
console.log(myFunction([1, 4, 3, 2], 'asc')); // [ 1, 2, 3, 4 ]
console.log(myFunction([1, 4, 3, 2], 'dsc')); // [ 4, 3, 2, 1 ]
console.log(myFunction([1, 4, 3, 2])); // [ 1, 4, 3, 2 ] без изменений