【问题标题】:Elegant way to remove every instance of a key in an object?删除对象中键的每个实例的优雅方法?
【发布时间】:2017-07-21 20:14:38
【问题描述】:

我有一个对象,我想复制这个对象并从中删除description 的每个实例。这样做的优雅方式是什么? 这是对象的外观:

{
  properties: {
    a: {
      value: foo,
      description: bar
    },
    b: {
      value: foo,
      description: bar
    }
}

【问题讨论】:

  • 你能告诉我们你用来移除钥匙的代码吗?
  • 我尝试遍历属性中的每个对象并从中删除描述
  • 如果 foobar 是原语,那么您可以使用 JSON 进行字符串化,然后使用 reviver 进行解析。这将为您提供一份删除了description 的副本。如果它们是复杂对象,那么此方法将不起作用。 developer.mozilla.org/en/docs/Web/JavaScript/Reference/…

标签: javascript ecmascript-6


【解决方案1】:

使用JSON.parse的第二个参数:

const output = JSON.parse(
  JSON.stringify(input), 
  (key, value) => key === "description" ? undefined : value
);

此函数的返回值undefined 告诉JSON.parse 跳过它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2017-05-26
    相关资源
    最近更新 更多