【问题标题】:Destructure from dynamic key从动态键解构
【发布时间】:2021-07-29 21:31:34
【问题描述】:

假设我有一些键值对象。我想从某个键中动态解构,以便我可以将其删除并在新对象中获取剩余项目。

const omit = (obj, key) => {
  const { [key], ...rest } = obj // Syntax error
  return rest
}

omit({ b: 1, c: 2, d: 3 }, 'd')
// desired output { b: 1, c: 2 }

有没有办法做到这一点?

免责声明:我知道有很多解决方法,但希望通过解构来实现。

【问题讨论】:

标签: javascript


【解决方案1】:

为了对动态键进行解构,您需要为 JS 提供一个别名以将该值绑定到。

Firefox 甚至会在此处为您提供有用的错误消息:

const omit = (obj, key) => {
  const { [key]: _, ...rest } = obj
  // CHANGE -----^
  return rest
}

console.log(omit({ b: 1, c: 2, d: 3 }, 'd'))

【讨论】:

    【解决方案2】:

    解构时可以重命名变量,左边(预先存在的名称)可以随意放在括号中。

    let {[key]: omitted, ...rest} = a;
    

    【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2019-08-11
    • 2021-06-23
    • 2023-03-28
    • 2021-05-24
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多