获取数组中的第一个和最后一个元素,ES6方式[重复]
Posted
技术标签:
【中文标题】获取数组中的第一个和最后一个元素,ES6方式[重复]【英文标题】:Get first and last elements in array, ES6 way [duplicate] 【发布时间】:2017-11-15 14:16:27 【问题描述】:let array = [1,2,3,4,5,6,7,8,9,0]
文档是这样的
[first, ...rest] = array
将输出 1 和数组的其余部分
现在有没有办法只取第一个和最后一个元素 1 & 0
和 Destructuring
例如:[first, ...middle, last] = array
我知道如何以另一种方式获取第一个和最后一个元素,但我想知道 es6 是否有可能
【问题讨论】:
rest参数后面不能有参数。let 0: first, [array.length-1]: last = array;
:-D
我认为这是***.com/questions/33064377/…的副本
@Bergi 好吧,是的,这是一种干净的方式。
第一: [first] = [ 1, 2, 3, 4 ].slice(0, 1)
。 最后: [last] = [ 1, 2, 3, 4 ].slice(-1)
【参考方案1】:
rest parameter 只能在最后使用,不能在解构中的其他任何地方使用,因此它不会按您的预期工作。
相反,您可以destructor 某些属性(数组也是JS 中的对象),例如0
为第一个元素,最后一个元素的索引为最后一个。
let array = [1,2,3,4,5,6,7,8,9,0]
let 0 : a ,[array.length - 1] : b = array;
console.log(a, b)
或者将长度作为另一个变量提取并基于该变量获取最后一个值的更好方法(@Bergi 建议),即使没有引用数组的变量也可以工作。
let 0 : a ,length : l, [l - 1] : b = [1,2,3,4,5,6,7,8,9,0];
console.log(a, b)
【讨论】:
这是一个休息而不是一个传播 FYI,它不是一个运算符,它只是语法。 嗯,是的,但不要那样做。let a = array[0], b = array[array.length-1];
干净多了。如果我们真的想让它尽可能简洁,还有let 0:a, length:l, [l-1]:b = array;
@bergi is l
在将值赋给 b 之前被定义???
是的,它是严格从左到右评估的
@bergi 谢谢,现在我清楚了 :)以上是关于获取数组中的第一个和最后一个元素,ES6方式[重复]的主要内容,如果未能解决你的问题,请参考以下文章