优雅的方式去构造数组,前n个元素和休息

时间:2015-05-12 20:24:50

标签: ecmascript-6 destructuring

我可以通过几种不同的方式解决这个问题,但我不确定是否有更优雅的方法。

拿一个数组

let foo = [1,2,3,4,5]

是否有一个使用数组解构的方法可以像thist一样工作:

split(array, n) =>
  ...

let bar = split(foo, 3)
bar[0] = [1,2,3]
bar[1] = [4,5]

我不知道是否会遇到这个问题。我觉得这应该是可以解构的,但我读它的方式我不知道怎么做。

2 个答案:

答案 0 :(得分:1)

如果你可以声明n个变量,然后将它们合并到一个数组中,你可以使用destructuring assignment

const [a, b, ...rest] = [10, 20, 30, 40, 50];

console.log([a,b], rest);
// expected output: [10,20] [30,40,50]

答案 1 :(得分:0)

您应该返回带有两个数组的数组。然后,您可以使用解构将部件分配给不同的变量

split(array, n) =>
  return [array.slice(0, n), array.slice(n)]

let foo = [1,2,3,4,5]
let [bar, baz] = split(foo, 3)
console.log(bar) // [1,2,3]
console.log(baz) // [4,5]

这是Babel REPL,您可以在其中试用