基于键过滤Json对象

4

我的JSON对象长这样

Object
  A:Object
  B:Object
  C:Object
  D Object
  E:Object
  F:Object
  __proto__:Object

我想根据键名从这个JSON对象中获取D和E。新的JSON对象应该只包含D和E。如何做到这一点?


这个问题是关于过滤单个JSON对象的,然而在重复标签的问题中是关于JSON数组的。需要去除重复项。 - Prasad Parab
4个回答

2

试试这个:

function copyObjectProps(source, keys) {
   let newObject = {}
   keys.forEach(function(key) {
     newObject[key] = source[key]
   })
   return newObject
}

并且像这样使用:

let filteredObject = copyObjectProps(yourObject, ['D', 'E'])

这是最好的方法,但我不会使用箭头函数,因为它目前还没有得到广泛支持。 - Maher Fattouh
在我工作的地方,我们使用Babel,这就是为什么我到处都在使用ES6的原因。感谢您指出这一点。 - Amresh Venugopal

0

0

Object['D']Object['E']将直接访问相应的对象。

您可以使用以下方法创建新对象..

var newObj = { D : Object['D'], E : Object['E']}

使用原始对象名称而不是Object进行访问。

使用JSON.stringify(newObj);可以获取新的JSON。


D Earthing 是一个打字错误。我已经更正了。 - Loura

0

筛选器仅适用于数组。因此,您需要定义一个新变量并运行for循环。

var mynewobject ={};
for (var key in myobject)
{
   if (...) // apply your condition here
      mynewobject[key] = myobject[key]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接