Эмуляция метода .reverse()

Проверьте меня пожалуйста. Правильно ли я сделал?

Задача: Напишите функцию, которая эмулирует работу метода reverse. Т.е. создает новый массив на основе arr13 с обратным порядком элементов и выводит в out-13.

let arr13 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
let btn13 = document.querySelector('button.b-13');
let div13 = document.querySelector('div.out-13');
btn13.onclick = function f13() {
    let tsk13 = [];
    for (let i = 0; i < arr13.length; i++) {
        tsk13.push(arr13[i]);
    }
    for (let i = tsk13.length - 1; i >= 0; i--) {
        div13.innerHTML += tsk13[i] + ' ';
    }
    div13.innerHTML += '<br>' + ' ';
    tsk13 = arr13;
}
<button class="b-13">BUTTON_TASK-13</button>
    <div class="out-13"></div>


А так будет верно?

let arr13 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
let btn13 = document.querySelector('button.b-13');
let div13 = document.querySelector('div.out-13');
btn13.onclick = function f13() {
    let tsk13 = [];
    for (let i = arr13.length - 1; i >= 0; i--) {
        tsk13.push(arr13[i]);
    }
    for (let i = 0; i < tsk13.length; i++) {
        div13.innerHTML += tsk13[i] + ' ';

    }
    console.log(tsk13);
    div13.innerHTML += '<br>' + ' ';
    tsk13 = arr13;
}
    <button class="b-13">BUTTON_TASK-13</button>
    <div class="out-13"></div>


Ответы (1 шт):

Автор решения: Leonid

Можно попробовать через деструктивное присваивание менять местами пары:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];

Array.prototype.myReverse = function(){
    for(let i=0; i<=this.length/2|0; i++){
        [this[i], this[this.length - 1 - i]] = [this[this.length - 1 - i], this[i]];
    }
}

arr.myReverse();

console.log(arr);

Или применить безусловную обратную сортировку:

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];

Array.prototype.myReverse = function(){
    this.sort(() => -1);
}

arr.myReverse();

console.log(arr);

→ Ссылка