根据多个唯一值进行过滤

吉姆·多佛(Jim Dover)

我正在尝试确定以下最佳方法。

我有两个数组,如下所示:

const a = [
{
  Employee: "00001",
  Seq: "01",
  ReportDate: "2021-03-10T00:00:00.000",
  ReportName: "test report",
},
{
  Employee: "00002",
  Seq: "01",
  ReportDate: "2020-03-10T00:00:00.000",
  ReportName: "test report 2",
},
];


const b = [
{
  Employee: "00001",
  EmplName: "William Apple",
  ReportDate: "2021-03-10T00:00:00.000",
  ReportName: "test report",
  Posted: "Y",
  Seq: "01",
},
{
  Employee: "00003",
  EmplName: "John Smith",
  ReportDate: "2021-03-10T00:00:00.000",
  ReportName: "test report 3",
  Posted: "Y",
  Seq: "01",
},
];

我想过滤掉数组'b'中的所有内容,其中不包含数组'a'中的一个对象中的所有4个确切值。

因此,按照上面的示例,我将得到:

// from array 'b'
const c = [
{
  Employee: "00001",
  EmplName: "William Apple",
  ReportDate: "2021-03-10T00:00:00.000",
  ReportName: "test report",
  Posted: "Y",
  Seq: "01",
}
];

我已经研究了各种方法来做到这一点。我不能仅检查对象是否相等,因为数组“ a”将仅包含4个值/键,而数组“ b”将具有更多/动态量。

最好通过循环和多个IF语句使用Filter方法吗?

斯科特·索耶(Scott Sauyet)

我将从这样的循环代码中分离出与对象完全匹配的测试:

const subObject = (a, b) => 
  Object .entries (a) .every (([k, v]) => b [k] == v)

const matches = (xs, ys) => 
  ys .filter (y => xs .some (x => subObject (x, y)))

const a = [{Employee: "00001", Seq: "01", ReportDate: "2021-03-10T00:00:00.000", ReportName: "test report"}, {Employee: "00002", Seq: "01", ReportDate: "2020-03-10T00:00:00.000", ReportName: "test report 2"}]
const b = [{Employee: "00001", EmplName: "William Apple", ReportDate: "2021-03-10T00:00:00.000", ReportName: "test report", Posted: "Y", Seq: "01"}, {Employee: "00003", EmplName: "John Smith", ReportDate: "2021-03-10T00:00:00.000", ReportName: "test report 3", Posted: "Y", Seq: "01"}]

console .log (matches (a, b))

subObject检查中的每个属性是否a具有相同的值b

matches 用于根据第一个列表是否具有某个元素作为其子对象来过滤第二个列表。

两者都证明是非常简单的功能。虽然我们可以内联subObject到内部matches,但我认为它本身很有用,并且可以生成更好的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据一列中的多个值进行过滤

来自分类Dev

通过跨多个列进行过滤,从唯一值对创建数据框

来自分类Dev

SQL-从一列中选择唯一值,然后根据另一列进行过滤

来自分类Dev

SQL-从一列中选择唯一值,然后根据另一列进行过滤

来自分类Dev

根据唯一匹配条件进行过滤

来自分类Dev

弹性搜索-根据过滤/匹配返回唯一值

来自分类Dev

根据其他列中的条件汇总列中的唯一值(如果对列进行了过滤)

来自分类Dev

如何根据唯一属性值对字典数组进行分组?

来自分类Dev

根据列中的唯一值对点进行计数

来自分类Dev

根据唯一值对两列上的数据框进行排序

来自分类Dev

根据 Excel 列中的唯一值进行搜索

来自分类Dev

根据多个列中的唯一值对列求和

来自分类Dev

根据多个列计算Google Spreadsheet中的唯一值

来自分类Dev

根据另一列中的重复值过滤一列中的唯一值

来自分类Dev

Laravel对标签输入中的多个值进行唯一验证

来自分类Dev

Django:根据另一行的值进行过滤

来自分类Dev

根据多个值过滤数组

来自分类Dev

如何根据其唯一值对列进行分组,并根据其值将其计入不同的列?

来自分类Dev

从JSON过滤唯一值

来自分类Dev

根据特定列过滤文本文件中的唯一数据,而不进行排序

来自分类Dev

根据唯一值过滤列值,但不会针对同一唯一值上的同一列的不同值重复

来自分类Dev

使用来自具有多个值的过滤列的唯一值填充数组

来自分类Dev

根据熊猫中的另一列对唯一值进行排序

来自分类Dev

在Power BI中对多个值进行过滤-文本确实包含多个值之一

来自分类Dev

Typescript - 根据多个值对数组中的对象进行分组和过滤

来自分类Dev

根据最接近的值进行过滤/合并

来自分类Dev

根据NULL值进行过滤选择

来自分类Dev

根据每组不同值的数量进行过滤

来自分类Dev

如何根据唯一的嵌入式数组值进行计数

Related 相关文章

  1. 1

    根据一列中的多个值进行过滤

  2. 2

    通过跨多个列进行过滤,从唯一值对创建数据框

  3. 3

    SQL-从一列中选择唯一值,然后根据另一列进行过滤

  4. 4

    SQL-从一列中选择唯一值,然后根据另一列进行过滤

  5. 5

    根据唯一匹配条件进行过滤

  6. 6

    弹性搜索-根据过滤/匹配返回唯一值

  7. 7

    根据其他列中的条件汇总列中的唯一值(如果对列进行了过滤)

  8. 8

    如何根据唯一属性值对字典数组进行分组?

  9. 9

    根据列中的唯一值对点进行计数

  10. 10

    根据唯一值对两列上的数据框进行排序

  11. 11

    根据 Excel 列中的唯一值进行搜索

  12. 12

    根据多个列中的唯一值对列求和

  13. 13

    根据多个列计算Google Spreadsheet中的唯一值

  14. 14

    根据另一列中的重复值过滤一列中的唯一值

  15. 15

    Laravel对标签输入中的多个值进行唯一验证

  16. 16

    Django:根据另一行的值进行过滤

  17. 17

    根据多个值过滤数组

  18. 18

    如何根据其唯一值对列进行分组,并根据其值将其计入不同的列?

  19. 19

    从JSON过滤唯一值

  20. 20

    根据特定列过滤文本文件中的唯一数据,而不进行排序

  21. 21

    根据唯一值过滤列值,但不会针对同一唯一值上的同一列的不同值重复

  22. 22

    使用来自具有多个值的过滤列的唯一值填充数组

  23. 23

    根据熊猫中的另一列对唯一值进行排序

  24. 24

    在Power BI中对多个值进行过滤-文本确实包含多个值之一

  25. 25

    Typescript - 根据多个值对数组中的对象进行分组和过滤

  26. 26

    根据最接近的值进行过滤/合并

  27. 27

    根据NULL值进行过滤选择

  28. 28

    根据每组不同值的数量进行过滤

  29. 29

    如何根据唯一的嵌入式数组值进行计数

热门标签

归档