Дан массив: ['shoes', 'shirts', 'socks', 'sweaters']
Напишите функцию которая записывает последний элемент этого массива в переменную elem1, а предпоследний - в переменную elem2, не обращаясь к свойству length для решения.
Правильно ли записано решение?
let arr = ['shoes', 'shirts', 'socks', 'sweaters'];
let elem1 = arr.pop();
let elem2 = arr.shift();
console.log(elem1);
console.log(elem2);
console.log(arr);
Ответы (1 шт):
Автор решения: Александр Лесив
→ Ссылка
let arr = ['shoes', 'shirts', 'socks', 'sweaters'];
var elem1, elem2;
ex2(arr);
// ex1(arr);
console.log(elem1);
console.log(elem2);
console.log(arr);
// Правильная реализация вашего подхода
// Нужно дважды использовать pop, чтоб получить последний и предпоследний
function ex1(arr) {
elem1 = arr.pop();
elem2 = arr.pop();
}
// Я бы сделал так, чтоб не мутировать исходный массив
function ex2(arr) {
// Получаем 2 последние элементы массива и с помощью деструктуризации
// присваиваем их значения в переменные
[elem2, elem1] = arr.slice(-2);
}