Javascript shift() unshift() Мнемоника?
Мне трудно запомнить, что делают Array.shift()
и Array.unshift()
.
Спустя несколько лет я все еще слишком часто проверяю ссылки, когда мне нужно использовать один из них. Может ли кто-нибудь объяснить почему эти имена выбираются и как запомнить, что делает что?
У меня нет такой проблемы с Array.push()
и Array.pop()
Ответы
Ответ 1
Это, безусловно, самая запутанная пара имен функций. Единственное спасение, которое я могу предложить, - это запомнить одну из следующих двух вещей:
- Сдвиг можно рассматривать как "перемещение чего-то вокруг", и, возможно, вы можете представить себе, что если вы "сдвигаете" массив вокруг связки, что-то может упасть с конца (или в этом случае, на начало). Unshift возвращает вещи так, как они были.
- Это противоположность тому, что звучит так, как должно быть.
unshift
звучит как отмена чего-то, но на самом деле он помещает что-то в массив.
Удачи!
Ответ 2
Как я знал.
Команда shift поступает из бинарного сдвига бит [1]. для примера.
001100
0 < 011000 // when you shift left
|
Yay!
Я думаю, что это довольно просто, так же, как вы отталкиваете его сзади. Поэтому это имеет смысл для меня.
Недвижение - это противоположный способ сдвига.
001100
1 > 001100 // they called it unshift
1001100
|
Yay!
Так что, надеюсь, это поможет!
[1] http://en.wikipedia.org/wiki/Bitwise_operation#Bit_shifts
Ответ 3
a.push(e)
нажимает e
на конец a
.
e = a.pop()
добавляет элемент last из a
, в e
.
a.unshift(e)
enqueues e
к началу a
.
e = a.shift()
получает элемент first от a
до e
.
Используйте push
и pop
для стеков.
Используйте unshift
и pop
для очередей. (Или push
и shift
)
Я помню разницу между shift
(destructive) и unshift
(конструктивным) просто помню, что я использую un -shift для en -queueing и shift
противоположно unshift
.
Ответ 4
Как насчет:
SHIFTER делает дрифтер
Он возвращает первую запись переменной.
и -
UNSHIFTer - это weenier, который пробирается в линию
Вставляет аргумент в качестве первой записи в массиве
О, здесь есть глубокие психологические приемы!: -o Но серьезно, вы запомните это по своей особенности: -)
Ответ 5
Подумайте о своей клавиатуре:
Shift получает капитальную версию клавиши first, которую вы нажимаете.
.shift()
получает элемент первый из массива.