let array = [1,2,3,4,5,6,7,8,9,0]
这里是文档
[first, ...rest] = array
会输出数组的第一个元素1和其他剩余的元素
那么,有没有一种方法可以使用Destructuring只获取第一个和最后一个元素1 & 0
例如:[first, ...middle, last] = array
我知道如何用另一种方式获取第一个和最后一个元素,但我想知道是否有es6的方法。
let array = [1,2,3,4,5,6,7,8,9,0]
这里是文档
[first, ...rest] = array
会输出数组的第一个元素1和其他剩余的元素
那么,有没有一种方法可以使用Destructuring只获取第一个和最后一个元素1 & 0
例如:[first, ...middle, last] = array
我知道如何用另一种方式获取第一个和最后一个元素,但我想知道是否有es6的方法。
rest参数只能在解构的结尾使用,而不能在其他任何地方使用,因此它不会按照您的期望工作。
相反,您可以解构某些属性(在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)
let {0 : a ,length : l, [l - 1] : b} = [1,2,3,4,5,6,7,8,9,0];
console.log(a, b)
let a = array [0],b = array [array.length-1];
更加简洁清晰。如果我们真的想让它尽可能简洁,还有let {0:a, length:l, [l-1]:b} = array;
- Bergil
在赋值给 b
之前被定义的吗? - Pranav C Balanconst { 0: first, [array.length - 1]: last, ...middle } = array;
console.log(first, Object.values(middle), last);
- codeBelt
[first] = [ 1, 2, 3, 4 ].slice(0, 1)
。 最后:[last] = [ 1, 2, 3, 4 ].slice(-1)
。 - Joshua Pinter