首页 > 解决方案 > 删除 JSON 对象中的特定键

问题描述

我有一个 JSON 对象看起来像这样

{
value: {
  "0": {
    dummy: "dummy1",
    data : "One",
  },
},
value2: {
  "0": {
    dummy: "dummy2",
    data : "two",
  },
},
value3: {
  "0": {
    dummy: "dummy3",
    data : "three",
  },
}

}

我想要这样的输出

{
value: {
  "0": {
    data : "One",
  },
},
value2: {
  "0": {
    data : "two",
  },
},
value3: {
  "0": {
    data : "three",
  },
}

}

我能够遍历所有对象的根元素但无法遍历数组,尝试使用 map 但没有任何帮助。

标签: javascriptnode.jsjsonecmascript-6

解决方案


如本答案所述 - https://stackoverflow.com/a/3455416/5867572 -delete operator允许这样做。

说真的 - 一次搜索不到一分钟就找到了答案。我将其包括在内是因为我不了解删除运算符并假设其他人可能会感兴趣,但 SO 的想法是回答至少有少量研究的问题。

另外 - 如果我这样做 - 我会找到比简单地重复删除运算符 3 次更好的方法 - 但这需要在数据结构中进行更多考虑。

注意

let origData = {
  "value": {
  "1": {
    dummy: "dummy1",
    data : "One"
   }
  },
  "value2": {
    "0": {
      dummy: "dummy2",
      data : "two"
    }
  },
  "value3": {
    "0": {
      dummy: "dummy3",
      data : "three"
    }
  }
}


 delete origData["value"]["1"]["dummy"];
 delete origData["value2"]["0"]["dummy"];
 ddelete origData["value3"]["0"]["dummy"];

 console.log(origData); // logs the original object without the deleted keys / properties


推荐阅读