Перенос первого элемента массива в конец

Рейтинг: -4Ответов: 3Опубликовано: 17.01.2023

Помогите написать функцию, которая принимает массив чисел, например [1,2,3,4,5], и переносит первый элемент массива в конец

Например можно засунуть первый элемент в конец, затем удалить первый элемент

var arr = [1, 2, 3, 4, 5];

arr.splice(arr.length - 1, 1, arr[0]);
arr.shift();

console.log(arr);

подойдет ли такая функция?

Ответы

▲ 0

Функции, которые перемещают первый элемент в конец массива.

Функции change и changeSp мутируют исходный объект, фукнция changeSl возвращает новый массив, без мутирования исходного

const arr = [1,2,3,4,5];

function change(arr) {
  arr.push(arr[0])
  arr.shift()
  return arr
}

function changeSp(arr) {
  arr.push(arr.splice(0,1)[0]);
  return arr
}

function changeSl(arr) {
  const x = arr.slice(1,arr.length);
  x.push(arr[0])
  return x;
}

console.log(change(arr));
console.log(changeSp(arr));
console.log(changeSl(arr));

▲ 0

Можно сделать двумя способами:

  1. Без мутации исходного массива

    const arr = [1, 2, 3, 4, 5];
    
    const rearrangeWithMutatiton = (array) => {
      array.push(array.shift());
      
      return array;
    }
    
    console.log('After rearrange without mutation', rearrangeWithMutatiton(arr).toString());
    console.log('Before rearrange without mutation', arr.toString());

  2. С мутацией исходного массива

    const arr = [1, 2, 3, 4, 5];
    
    const rearrangeWithoutMutatiton = (array) => [...array.slice(1), array[0]];
    
    console.log('After rearrange with mutation', rearrangeWithoutMutatiton(arr).toString());
    console.log('Before rearrange with mutation', arr.toString());

▲ 0

const mas = [1,2,3,4,5]

a = mas.shift() mas.push(a)

console.log(mas)