首页 > 解决方案 > 如何根据使用角度 7 中的键的条件检查来过滤 json 响应中的数组

问题描述

当dataID与使用Angular 7中的打字稿功能在同一json响应中的另一个数组中的ParentDataID不匹配时,我想从json响应中单独过滤特定数组

{ "data":[
    {
       "dataId":"Atlanta",
       "parentDataId":"America"
    },
    {
       "dataId":"Newyork",
       "parentDataId":"America"
    },
    {
       "dataId":"Georgia",
       "parentDataId":"Atlanta"
    },
    {
       "dataId":"South",
       "parentDataId":"Atlanta"
    },
    {
       "dataId":"North",
       "parentDataId":"South"
    }
   ]
}

在上述响应中,dataId Newyork的值与 parentDataId 整个数组 json 响应中的任何一个都不匹配。所以现在我只想过滤掉第二个 DataID 数组来制作新数组。

我想在 Typescript angular 7 中进行此验证

我的输出应该如下所示...... DataId 没有 parentDataId

[
  {
    "dataId":"Newyork",
    "parentDataId":"America"
  },
  {
     "dataId":"Georgia",
     "parentDataId":"Atlanta"
   },
   {
      "dataId":"North",
      "parentDataId":"South"
     }
]

感谢帮助和响应

标签: jsonangulartypescriptfilterangular7

解决方案


您可以使用filter方法:

let filterKey = 'Atlanta';
const result = data.data.filter(f=> f.parentDataId != filterKey
   && f.dataId != filterKey);

一个例子:

let data = { "data":[
    {
       "dataId":"Atlanta",
       "parentDataId":"America"
    },
    {
       "dataId":"Newyork",
       "parentDataId":"America"
    },
    {
       "dataId":"Georgia",
       "parentDataId":"Atlanta"
    }
   ]
};

let filterKey = 'Atlanta';
const result = data.data.filter(f=> f.parentDataId != filterKey
    && f.dataId != filterKey);
console.log(result);


推荐阅读