Javascript.RU

shift

Синтаксис

var elem = arrayObj.shift()

Описание, примеры

Удаляет элемент с индексом 0 и сдвигает остальные элементы на один вниз. Возвращает удаленный элемент

var arr = ["мой","маленький", "массив"]

var my = arr.shift() // => "мой"
alert(arr[0]) // => "маленький"

// теперь arr = ["маленький", "массив"]

См. также


Автор: Гость (не зарегистрирован), дата: 22 апреля, 2012 - 21:01
#permalink

Замечу, что на больших массивах этот метод работает значительно более медленно чем pop(), так как сдвигает каждый элемент.


Автор: trikadin, дата: 18 октября, 2012 - 18:53
#permalink

Нет. Сдвигается лишь указатель на нижний край двусторонней очереди, которой по факту является массив.


Автор: mkochkin (не зарегистрирован), дата: 26 июля, 2012 - 10:05
#permalink

Обратите внимание, что shift удаляет не первый хранящийся в массиве элемент, а элемент с индексом 0, даже если его там нет. Об этом сказано в статье, но для наглядности пример.

var a = []; 
a[1]=1; a[2]=2; a[3]=3; 
var b = a.shift(); 
console.log(a, b);

// [1, 2, 3] undefined

Автор: max3d (не зарегистрирован), дата: 1 августа, 2014 - 23:08
#permalink

неверно. удаляет и возвращает первый элемент массива. Затем сдвигает оставшиеся.


Автор: AllaIreland (не зарегистрирован), дата: 27 сентября, 2014 - 18:26
#permalink

max3d прав, shift() удаляет и возвращает первый элемент массива, даже если это ячейка с индексом false (а не [0]), вот пример с подтверждением этого:

var a = [];
a[1]=1; a[2]=2; a[3]=3;//
alert (0 in a);//false, нет ячейки [0], просто не задали ее
alert (a[0]);//undefined
alert (a);//,1,2,3
var b = a.shift();//
alert ("shift() вернул "+b);//shift() вернул undefined
alert (0 in a);//true
alert (a[0]);//1
alert (a);//1,2,3

alert ("аналогично, если выбить элемент массива delete");//выбьем ячейку [0], хотя изначально она была
var a = [0, 1, 2, 3];
delete a[0];
alert (0 in a);//false, нет ячейки [0], ее удалили, но не сдвинули индексы
alert (a[0]);//undefined
alert (a);//,1,2,3
var b = a.shift();//
alert ("shift() вернул "+b);//shift() вернул undefined
alert (0 in a);//true
alert (a[0]);//1
alert (a);//1,2,3


Автор: metronomx (не зарегистрирован), дата: 12 августа, 2015 - 14:35
#permalink

Неправда. Именно элемент с индексом 0.

var a = []; a[1] = 1; a[2] = 2; a.shift()
вернет undefined


Автор: Alex Grand (не зарегистрирован), дата: 12 августа, 2015 - 21:29
#permalink

shift удаляет первый элемент, и он является всегда 0-м, в примере выше, посмотрите на длинну массива:

var a = [];
a[1] = 5
console.log(a.length)//2
a.shift()
console.log(a.length)//1

Особенность в том, что при использовании напрямую индекса, создаются очень много элементов со значением undefined (если они не существовали), с индексами до этого элемента.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
9 + 3 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum