Нужно скопировать и отсортировать массив исходя из заданного
У нас есть массив строк arr. Нужно получить отсортированную копию, но оставить arr неизменённым. Функция copySorted(arr), должна возвращать такую копию. Хотел бф получить какие-то наводки, поскольку первое, что приходит в голову здесь, это естественно функция sort, но это не совсем то, что нужно очевидно)
let arr = ["HTML", "JavaScript", "CSS"];
let sorted = copySorted(arr);
alert( sorted ); // CSS, HTML, JavaScript
alert( arr ); // HTML, JavaScript, CSS (без изменений)
Ответы (3 шт):
Автор решения: meine
→ Ссылка
оно?
let arr = ["HTML", "JavaScript", "CSS"];
function copySorted(array) {
const copiedArray = [...array];
return copiedArray.sort((a, b) => a.length - b.length);
}
let sorted = copySorted(arr);
alert( sorted ); // CSS, HTML, JavaScript
alert( arr ); // HTML, JavaScript, CSS (без изменений)
Автор решения: Игорь Новоженин
→ Ссылка
var arr = ['HTML', 'JavaScript', 'CSS'];
function copySorted(arr) {
return arr.slice().sort();
}
var sorted = copySorted(arr);
console.log (sorted);
console.log(arr);
Использовать метод slice() без передачи ему в фигурных скобках параметров. В этом случае произойдёт копирование всех элементов массива для которого вызывается метод и создание новое массива, а метод sort() отсортируют элементы в новом массиве.