Заголовок JavaScript и хвост на массиве без мутации

Я нашел о работе массива JavaScript Unshift, shift, push, pop

Однако все эти операции мутируют массив.

Есть ли способ использовать эти функции, не вызывая мутации исходных данных?

Как-то я чувствую, что чтение данных не должно вызывать мутации.

javascript,arrays,

20

Ответов: 3


58 ов принято

Вы можете использовать:

var head = arr[0];
var tail = arr.slice(1);

Или в ES6:

const [head, ...tail] = arr;

4

Я бы использовал ES6, как указано выше

const head = ([h]) => h;
const tail = ([, ...t]) => t;

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

alert(head(arr));

0

Принятый ответ хорош, но для более функционального подхода:

Головы

Я бы использовал find, который возвращает первый элемент, возвращающий значение true-thy в его предикат.

Если вы уверены, что ваши ценности верны, вы можете написать это следующим образом:

arr.find(Boolean)

Если вы хотите получить первое значение, независимо от его значения, вы можете записать его следующим образом:

arr.find(_ => true)

фрак

Как и остальные, используйте срез

arr.slice(1);
JavaScript, массивы,
Похожие вопросы