typescript [closed]中是否有函数可以过滤掉json中的真值

kyvafyod  于 2023-01-06  发布在  TypeScript
关注(0)|答案(1)|浏览(135)

14小时前关门了。
Improve this question
我试图从Angular 中的对象中过滤出真实值。我无法过滤出真实值。
这是我的json:

const response ={
"name": "xyz",
"version": "50",
"A": true,
"B": {
  "type": ""
 },
"C": {
 "D": true,
 "E": true
},
"I": true

}
我想要的领域,谁在对象的对象真正的价值。这就是我正在尝试

for (const key in response) {
  const entry = response[key];
  if (entry == true) {
      result[key] = entry;
   }
   }
console.log("result", result)

为此,我将获得{A:true,I:true},但我需要过滤掉具有真值的字段({" A ":真,"C":{" D ":真,"E":真},"I":true})。有人能帮我吗?先谢了

9lowa7mx

9lowa7mx1#

如果出现对象,您可以采用递归方法过滤级别或嵌套级别。

const
    filter = object => {
        const entries = Object
            .entries(object)
            .flatMap(([k, v]) => {
                const temp = v === true ||
                    v && typeof v === 'object' && filter(v);
                return temp
                    ? [[k, temp]]
                    : [];
            });
        return entries.length ? Object.fromEntries(entries) : undefined;
    },
    response = { name: "xyz", version: "50", A: true, B: { type: "" }, C: { D: true, E: true }, I: true };

console.log(filter(response));

相关问题