В представленном ниже коде, в моём, вероятно не самом толковом понимании функция получает массив "arr" в аргумент "list", должна его отсортировать и вернуть отсортированный массив в переменную arrSorted. И при всём, при этом, изначальный, глобальный массив вроде как тоже должен оставаться без изменений, ведь все действия производимые с ним были внутри тела функции, но на деле, по итогу выполнения кода и arr, и arrSorted становятся отсортированными.
var arr = ["HTML", "JavaScript", "CSS"];
var arrSorted = sortFunc(arr);
function sortFunc(list){
return list.sort();
}
console.log( arrSorted ); // CSS, HTML, JavaScript
console.log( arr ); // CSS, HTML, JavaScript
Чтоб было совсем понятно, что это не копия массива, добавил элемент
var arr = [ "HTML", "JavaScript", "CSS" ];
// Здесь вы просто получили ссылку на arr
var arrSorted = sortFunc( arr );
function sortFunc ( list ) {
return list.sort();
}
// +++ Добавлено
arrSorted.push( "PHP" );
console.log( arrSorted ); // [ 'CSS', 'HTML', 'JavaScript', 'PHP' ]
console.log( arr ); // [ 'CSS', 'HTML', 'JavaScript', 'PHP' ]
Как я написал в комментарии Вы и сортируете исходный массив, а затем возвращаете его из функции.
Чтобы этого избежать создавайте копию:
let newArr = arr.slice(0)
var arr = ["HTML", "JavaScript", "CSS"];
var arrSorted = sortFunc(arr.slice(0));
function sortFunc(list){
return list.sort();
}
console.log( arrSorted ); // CSS, HTML, JavaScript
console.log( arr ); // CSS, HTML, JavaScript
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Возникла такая задача, проверить существование или поддержку события в разных браузерах
Хотите улучшить этот вопрос? Update the question so it's on-topic for Stack Overflow на русском
Современные браузеры позволяют давать доступ, и соответственно вести запись: