【问题标题】:Elegant way to destructure array, first n elements and rest解构数组、前 n 个元素和其余元素的优雅方式
【发布时间】:2015-05-12 20:24:49
【问题描述】:

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

取一个数组

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

有没有一种使用数组解构的方法可以像这样工作:

split(array, n) =>
  ...

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

我不知道会遇到问题。我觉得这应该可以通过解构来实现,但是我阅读它的方式我不知道该怎么做。

【问题讨论】:

标签: ecmascript-6 destructuring


【解决方案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]

【讨论】:

    【解决方案2】:

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

    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,您可以在这里试用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 2016-04-04
      相关资源
      最近更新 更多