let { [key]: id = 0, ...rest } = obj-让解构发挥到极限

本文详细探讨了JavaScript中的解构赋值,包括如何在遇到特定问题时使用解构、剩余参数的概念、如何分配新变量名以及如何处理计算对象属性名。通过实例解析了`let { [key]: id = 0, ...rest } = obj`的用法,揭示了其在处理对象属性动态分组和赋值时的灵活性。" 50624125,5115735,在LXC中设置NFS服务器,"['LXC', 'NFS', 'Linux容器', '服务器配置', '网络文件系统']
摘要由CSDN通过智能技术生成
 
 

最近遇到了一个问题,来自于下面的一段代码:

let { [key]: id, ...rest } = obj

在这篇文章里,我想解释下它是在做什么以及它是如何工作的。

提醒:因为它非常的晦涩难懂,所以我最终并没有以这种方式实现去做,不过它是非常有趣的,值得去我们去了解。

如何遇到这个问题的

假如我们有以下数组

const users = [     { name: 'Michael', group: 1 },    { name: 'Lukas', group: 1 },    { name: 'Travis', group: 2 },]
    { name'Michael'group1 },
    { name'Lukas'group1 },
    { name'Travis'group2 },
]

我们把它按照 group 字段进行分组映射如下:

{    '1': [        { name: 'Michael' },        { name: 'Lukas' },    ],    '2': [        { name: 'Travis' },    ]}'1': [
        { name'Michael' },
        { name'Lukas' },
    ],
    '2': [
        { name'Travis' },
    ]
}

如何从 users 对象中删除 group 属性,实现上述效果?

我们可以利用如下方法:

users.reduce((result, user) => {  const { group, ...userData } = user  result[group] = result[group] || []  result[group].push(userData)  return result}, {})
  const { group, ...userData } = user
  result[group] = result[group] || []
  result[group].push(userData)

  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值