将生成的“块”对象与列表进行比较

时间:2021-04-02 16:21:45

标签: javascript

嗨!

我已经阅读了所有关于在 JS 中使用地图、过滤器和包含的文章,但我仍然无法弄清楚如何从我收到和通过的检查中获取我需要的“块”。

任务:在对象 A 内部,有具有“块”字段的数组。此字段应与数组 B 进行比较,并将结果值保存或简单返回。

首先我得到唯一值并将它们组合起来,然后我开始在结果列表中搜索并比较它们。

a = [ 
  {
    "id":1,
    "title":"123", 
    "url":"123", 
    "password":"123", 
    "totp":"none", 
    "block":"none", 
    "created_at":"2021-03-28T20:36:21.000Z", 
    "updated_at":"2021-03-28T20:36:21.000Z" 
  },
  {
    "id":2, 
    "title":"qwe",
    "url":"qwe",
    "password":"qwe",
    "totp":"none",
    "block":"none",
    "created_at":"2021-03-28T20:36:39.000Z",
    "updated_at":"2021-03-28T20:36:39.000Z"
  },
  {
    "id":3,
    "title":"asd",
    "url":"asd",
    "password":"asd",
    "totp":"none",
    "block":"nne",
    "created_at":"2021-03-28T20:36:42.000Z",
    "updated_at":"2021-03-28T20:36:42.000Z"
  }
];
     
b = ['none', '5235', '5235']
    
    
console.log(
  Array.from(a, 
    ({block}) => block
  )
  .map(
    i => i
  )
  .map(
    al => b.filter(
      bal => bal === al
    )
  )
)

输出:enter image description here

但我想看到而不是匹配的词 - 这些词所属的特定对象

1 个答案:

答案 0 :(得分:2)

使用a.filter(({block}) => b.includes(block))

const a = [
  {"id":1,"title":"123","url":"123","password":"123","totp":"none","block":"none","created_at":"2021-03-28T20:36:21.000Z","updated_at":"2021-03-28T20:36:21.000Z"},
  {"id":2,"title":"qwe","url":"qwe","password":"qwe","totp":"none","block":"none","created_at":"2021-03-28T20:36:39.000Z","updated_at":"2021-03-28T20:36:39.000Z"},
  {"id":3,"title":"asd","url":"asd","password":"asd","totp":"none","block":"nne","created_at":"2021-03-28T20:36:42.000Z","updated_at":"2021-03-28T20:36:42.000Z"}
  ];
 const b = ['none', '5235', '5235']
 
 
const filtered = a.filter(({block}) => b.includes(block));

console.log(filtered);

相关问题