按对象数组过滤数组属性

时间:2021-04-21 11:45:45

标签: javascript filter

我现在做的事情不是给出正确答案。

结果,我只得到了 brr 数组的值:

["model/model.yaml", 
 "model/storage-complextypes.yaml", 
 "model/storage-simpletypes.yaml"]

试图找出我犯错的地方

let arr = [{
  id: "862d-8f99-4638-ef1d",
  data: "---↵  inventory:↵  - devices:↵      platformtypes:…          extract:↵            path: create_time↵",
  path: "inventory/inventory.yaml"
}, {
  id: "ccad-2ea5-1241-4d1a",
  data: "---↵  model:↵    services:↵    - name: nano↵      …erdelete: cascade↵          apiaccess: readonly↵↵",
  path: "model/model.yaml"
}, {
  id: "5f6d-2ce9-a5e4-dee8",
  data: "---↵  model:↵    packages:↵    - name: storage↵   …olicy rules.↵          type: Collection(string)↵↵",
  path: "model/storage-complextypes.yaml"
}]

const brr = ["model/model.yaml", "model/storage-complextypes.yaml", "model/storage-simpletypes.yaml"]


const res = brr.filter((i) => arr.filter((j) => j.path !== i))

console.log(res)

1 个答案:

答案 0 :(得分:1)

你是这个意思吗?

let arr = [{
  id: "862d-8f99-4638-ef1d",
  data: "---↵  inventory:↵  - devices:↵      platformtypes:…          extract:↵            path: create_time↵",
  path: "inventory/inventory.yaml"
}, {
  id: "ccad-2ea5-1241-4d1a",
  data: "---↵  model:↵    services:↵    - name: nano↵      …erdelete: cascade↵          apiaccess: readonly↵↵",
  path: "model/model.yaml"
}, {
  id: "5f6d-2ce9-a5e4-dee8",
  data: "---↵  model:↵    packages:↵    - name: storage↵   …olicy rules.↵          type: Collection(string)↵↵",
  path: "model/storage-complextypes.yaml"
}]

const brr = ["model/model.yaml", "model/storage-complextypes.yaml", "model/storage-simpletypes.yaml"]

const paths = arr.map(({path}) => path)
const res = brr.filter(path => paths.includes(path))

console.log(res)

其他方式:

let arr = [{
  id: "862d-8f99-4638-ef1d",
  data: "---↵  inventory:↵  - devices:↵      platformtypes:…          extract:↵            path: create_time↵",
  path: "inventory/inventory.yaml"
}, {
  id: "ccad-2ea5-1241-4d1a",
  data: "---↵  model:↵    services:↵    - name: nano↵      …erdelete: cascade↵          apiaccess: readonly↵↵",
  path: "model/model.yaml"
}, {
  id: "5f6d-2ce9-a5e4-dee8",
  data: "---↵  model:↵    packages:↵    - name: storage↵   …olicy rules.↵          type: Collection(string)↵↵",
  path: "model/storage-complextypes.yaml"
}]

const brr = ["model/model.yaml", "model/storage-complextypes.yaml", "model/storage-simpletypes.yaml"]


const res = arr.filter(({path}) => brr.includes(path))

console.log(res)