如何使用解构获取数组的最后一个元素

How can I get last element of an array by using Destructuring

我在学习ES6 Destructuring

我遇到错误 Rest element must be last element

这是我现在拥有的

const siblings = ['John','Jack','Amanda','Allie','Bob']

let [firstSiblingName,...middleAllSiblingsName,lastSiblingName] = siblings
console.log(lastSiblingName)

我要的是

firstSiblingName = 'John'
middleAllSiblingsName = ['Jack','Amanda','Allie']
lastSiblingName = 'Bob'

如果我删除 lastSiblingName 那么它就可以工作,但这样我就无法单独获取最后一个元素。

我做错了什么,我怎样才能让它达到要求的输出。

你不能,不能单独使用 rest 语法 - rest 将始终消耗数组其余元素的 all。在提取中间元素之后,您必须 .pop() 最后一个元素:

const siblings = ['John','Jack','Amanda','Allie','Bob'];

let [firstSiblingName,...middleAllSiblingsName] = siblings;
const lastSiblingName = middleAllSiblingsName.pop();
console.log(lastSiblingName)

根据 mdn 只有最后一个参数可以是 "rest parameter"。相反,你可以这样做

const siblings = ['John', 'Jack', 'Amanda', 'Allie', 'Bob']

let [firstSiblingName, , , , lastSiblingName] = siblings
console.log(lastSiblingName)