Javascript ES6/Next:使用rest进行对象分解-分组

Javascript ES6/Next:使用rest进行对象分解-分组,javascript,ecmascript-6,destructuring,ecmascript-next,Javascript,Ecmascript 6,Destructuring,Ecmascript Next,我有: 我可以使用以下方法对其进行分解: const props = { gallery: [], select: () => null, one: 1, two: 2, } 我现在有三个变量: 图库=[] 选择=()=>null 其他={one:1,two:2} 是否可以将结构分解为指定的分组 类似这样的事情(这是行不通的,但我希望清楚地看到我正在尝试做什么): 所以我有两个变量: 特定的={gallery:[],选择:()=>null} 其他={one:1,tw

我有:

我可以使用以下方法对其进行分解:

const props = {
  gallery: [],
  select: () => null,
  one: 1,
  two: 2,
}
我现在有三个变量:

  • 图库=
    []
  • 选择=
    ()=>null
  • 其他=
    {one:1,two:2}
是否可以将结构分解为指定的分组

类似这样的事情(这是行不通的,但我希望清楚地看到我正在尝试做什么):

所以我有两个变量:

  • 特定的=
    {gallery:[],选择:()=>null}
  • 其他=
    {one:1,two:2}
我可以在更高的层次上解决它,并以这种方式构建道具:

const {{gallery, select}: specific, ...other} = props

但我只是想知道这是否可以通过解构实现。

这是怎么回事
others
也包含
特定的
数据,我必须首先访问
道具
(也许这可以改进),但我认为它基本上是在分解时分组的。它之所以有效,是因为您可以在属性不存在时指定默认值:

const props={
画廊:[],
选择:()=>null,
一:一,,
二:二,,
}
const{gallery:gal,select:sel}=props;
const{specific:specific={gallery:gal,select:sel},…others}=props;
控制台日志(特定);
控制台日志(其他)将语法(和可读性)拉伸到极限,您可以执行以下操作:

(注释中对代码进行了解释)

const props={
画廊:[],
选择:()=>null,
一:一,,
二:二,,
}
/**解构赋值**/
常数{
gallery,//提取gallery道具
选择,//提取选择属性
specific:specific={gallery,select},
//创建“特定”设置库,并通过默认值分配选择道具
…others//将其余未提取的道具属性分配给其他人
}=道具;
控制台日志(特定);

控制台日志(其他)可能可以用完成,但在ES6中不可用yet@SamiKuhmonen它永远不会在ES6中可用。ES6规范已经定稿。@Gothdo措辞含糊不清,我的意思是它在ES版本6中还不可用,但可能在以后的版本中。”我可以用“不使用ES6”来解构它。或任何其他指定版本的ES
…other
在任何现有的ES标准中都不是一个有效的表达式。我更新了这个问题,提到ES7而不是ES6,因为事实上,对象rest语法在ES6中不可用,建议用于ES7。我对stackoverflow非常陌生,所以我不确定,我的假设可能是错误的,但你似乎用了我的答案并改变了它。。。如果是这样的话,你不应该在我的文章中发表评论,而不是发布一个新的答案吗?@CésarLandesa即使代码片段共享相同的样板文件,解决方案也不同,所以我觉得没关系……但解决方案基于相同的思想来解决主要问题:在分解结构时使用默认值进行分组。。。当然,您改进了这个概念,但是基于我的代码和主要思想。我想这是一个视角的问题,但对我来说,这似乎是对我想法的修改,并不是一个完全不同的解决方案。@CésarLandesa我认为,当它是一个单一的表达式时,解构赋值是有用的,这是我提出的与你提出的内容的核心
const {{gallery, select}: specific, ...other} = props
const props = {
  specific: {
    gallery: [],
    select: () => null,
  },
  other: {
    one: 1,
    two: 2,
  }
}