javascript - Typescript 过滤两个对象数组

标签 javascript typescript angular-filters

我必须过滤掉一个对象中存在但另一个中不存在的数据

例如对象1

0:Object {Name: "Java", ResourceCount: 3}
1:Object {Name: "DotNet", ResourceCount: 4}
2:Object {Name: "Hadoop", ResourceCount: 1}
3:Object {Name: "Pega", ResourceCount: 2}
4:Object {Name: "Oracle", ResourceCount: 1}
5:Object {Name: "ETL", ResourceCount: 1}

对象 2

0:"DotNet"
1:"ETL"
2:"Hadoop"
3:"Java"
4:"Oracle"
5:"Pega"
6:"Mainframe"

我需要从对象 2 返回“MainFrame”,因为它不存在于对象 1 中。

这是我迄今为止尝试过的方法,但没有成功。

  const filteredList = object2.filter(item1 => 
          object1.find(item2 => item1.Name != item2.Name));

这只是返回对象 2 中的所有行

最佳答案

基本上,创建一个名称数组来帮助过滤对象2; (数组2) 如果存在多个名称,我已使用 加入结果

let object1 = [{Name: "Java", ResourceCount: 3}, {Name: "DotNet", ResourceCount: 4}, {Name: "Hadoop", ResourceCount: 1}, {Name: "Pega", ResourceCount: 2}, {Name: "Oracle", ResourceCount: 1}, {Name: "ETL", ResourceCount: 1}]
let object2 = ["DotNet", "ETL", "Hadoop", "Java", "Oracle", "Pega", "Mainframe"]

let object1Names = object1.map(obj => obj.Name); // for caching the result
results = object2.filter(name => !object1Names.includes(name)).join(',');
console.log(results);

关于javascript - Typescript 过滤两个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331434/

相关文章:

javascript - HTML 5 Canvas : Uploaded image colour picker

javascript - Angular4选择的选项在 "select"标签中选择后消失

typescript - 仅对定义文件允许隐式任何

javascript - Angular 日期范围过滤器不起作用

css - 将新行/n 转换为 Angular 换行符

javascript - 保护文本框免受键盘输入的影响

javascript - 为什么 NaN 是 JavaScript 中的全局变量?

javascript - 当我使用 jest(ts-jest async/await test) 时,WebStorm 提示我 TS 错误 (TS2705)

css - 使用 TypeScript react 如何在 Textfield Material-UI 中使用图标

angularjs - 如何在 Angular 滤镜功能而不是自定义滤镜中传递多个参数