【JavaScript 教程】第六章 数组21—shift() : 从数组中删除第一个元素

78bd31e5038f386a329135c71299ea61.png

来源 | https://www.javascripttutorial.net/

翻译 | 杨小爱

在今天的教程中,我们将一起来学习如何使用 JavaScript Array shift() 方法从数组中删除第一个元素。

JavaScript数组shift()函数介绍

Array.prototype.shift() 方法从数组中移除第一个元素并返回该元素,下面显示了 shift() 方法的语法:

array.shift()

如果数组为空,则 shift() 方法返回 undefined。 否则,它返回删除的元素。 此外,shift() 方法将数组的 length 属性减一。

如果要从数组中删除最后一个元素,可以使用 pop() 方法。

请注意,shift() 方法必须重新索引数组的所有剩余元素。 因此,与 pop() 方法相比,它更慢。

JavaScript 数组 shift() 方法示例

让我们举一些使用 shift() 方法的例子。

1)使用JavaScript数组shift()方法示例

以下示例使用 shift() 方法从数组中删除第一个元素:

 
 
const numbers = [10, 20, 30];
let number = numbers.shift();


console.log({ number });
console.log({ numbers });
console.log({ length: numbers.length });

输出:

 
 
{ number: 10 }
{ numbers: [ 20, 30 ] }
{ length: 2 }

怎么运行的。

首先,定义numbers具有三个元素的数组:

 
 
const numbers = [10, 20, 30];

其次,从 numbers 数组中删除第一个元素并将删除的元素分配给 number 变量。

let number = numbers.shift();

第三,将移除的元素、数组和数组的长度输出到控制台:

 
 
console.log({ number });
console.log({ numbers });
console.log({ length: numbers.length });

下图说明了上述示例的工作原理:

bff0071809cc8de5e6912e35ddbbe0c5.png

2) 使用 JavaScript 数组 shift() 方法示例

以下示例显示如何使用带有 while 循环的 shift() 方法来删除数组的所有元素:

 
 
const numbers = [10, 20, 30];
let number;
while ((number = numbers.shift()) != undefined) {
  console.log(number);
}

输出:

 
 
10
20
30

将 JavaScript 数组 shift() 与类数组对象一起使用

shift() 方法是通用的。因此,我们可以将它与类似数组的对象一起使用。要对类似数组的对象使用 shift() 方法,我们可以使用 call() 或 apply() 方法。

考虑以下示例:

 
 
let greetings = {
  0: 'Hi',
  1: 'Hello',
  2: 'Howdy',
  length: 3,
  removeFirst() {
    return [].shift.call(this);
  },
};


const greeting = greetings.removeFirst();


console.log(greeting);
console.log(greetings);

输出:

 
 
Hi
{
  '0': 'Hello',
  '1': 'Howdy',
  length: 2,
  removeFirst: [Function: removeFirst]
}

它是怎么运行的。

首先,定义greetings对象:

 
 
let greetings = {
  0: 'Hi',
  1: 'Hello',
  2: 'Howdy',
  length: 3,
  removeFirst() {
    return [].shift.call(this);
  },
};

greetings 对象具有三个元素,分别用属性 0、1 和 2 表示。此外,它还具有存储对象元素数量的 length 属性。

removeFirst() 方法使用 call() 方法来调用数组的 shift() 方法,其中 this 引用了 greetings 对象。

其次,调用 removeFirst() 方法并将移除的元素赋值给 greeting 变量:

 
 
const greeting = greetings.removeFirst();

三、将问候语和问候语输出到控制台:

 
 
console.log(greeting);
console.log(greetings);

输出显示长度减一,索引为0的属性被移除,其他属性的索引也相应调整。

总结

使用 shift() 方法从数组中删除第一个元素并返回该元素。

通过 call() 或 apply() 方法将 shift() 方法与类数组对象一起使用。

学习更多技能

请点击下方公众号

a49917863e8fe68636334d7e7f42fdef.gif

bfb261a3d6e2325d5c00a87f09b0f978.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值