我很难记住Array.shift()
和Array.unshift()
做了什么。
几年后,当我需要使用其中一个时,我仍然会不时查看参考文献。任何人都可以解释为什么选择这些名称以及如何记住哪一个做什么?
我对Array.push()
和Array.pop()
答案 0 :(得分:16)
据我所知。
移位命令来自二进制位移[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
答案 1 :(得分:7)
a.push(e)
将 e
推送到a
的结束。
e = a.pop()
弹出 最后元素从a
到e
。
a.unshift(e)
将 e
加入a
的开始。
e = a.shift()
从a
到e
的第一个元素。
使用push
和pop
作为堆栈。
使用unshift
和pop
作为队列。 (或push
和shift
)
我记得shift
(破坏性)和unshift
(建设性)之间的区别只是记住我使用 un -shift en -queueing,shift
与unshift
相反。
答案 2 :(得分:5)
想想你的键盘:
Shift 获取 您按下的 第一个 键的大写版本。
.shift()
第一个 项目。
答案 3 :(得分:4)
怎么样:
SHIFTer制作一个漂流者
它返回变量的第一个条目。
和 -
UNSHIFTer是一个偷偷摸摸的weenier
将参数作为数组中的第一个条目插入
哦,这里有深刻的心理技巧!! :-o但严重的是,你会记住它的特点: - )
答案 4 :(得分:2)
这肯定是最令人困惑的一对函数名称。我能提供的唯一救赎就是记住以下两件事之一:
unshift
听起来像撤消某些东西,但事实上,它正在将某些东西放到阵列上。