Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
从数组中删除的元素;如果数组为空则返回 undefined。
shift 方法移除索引为 0 的元素,并将后续元素的下标依次向前移动,然后返回被移除的元素。如果 length 属性的值为 0,则返回 undefined。
pop() 方法有着和 shift() 相似的行为。但是是作用于数组的最后一个元素上的。
shift() 方法是一个改变方法。它改变了 this 的内容和长度。如果你希望保持 this 的值不变,但返回一个删除了第一个元素的新数组,你可以使用 arr.slice(1)。
shift() 方法是通用的。它只期望 this 值具有 length 属性和整数键属性。虽然字符串也是类似数组的,但这个方法不适合应用于它们,因为字符串是不可变的。
以下代码显示了删除其第一个元素之前和之后的 myFish 数组。它还显示已删除的元素:
shift() 方法经常用于 while 循环的条件中。下例中每次迭代都会从一个数组中移除下一项元素,直至它成为空数组。
shift 方法会读取 this 的 length 属性。如果规范化长度为 0,length 再次设置为 0(而之前可能为负值或 undefined)。否则,返回 0 处的属性,其余属性向左移动 1。length 属性递减 1。
| ECMAScript® 2027 Language Specification # sec-array.prototype.shift |
启用 JavaScript 以查看此浏览器兼容性表。