javascript 返回具有相同密钥门的字符

e4eetjau  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(110)

我有一个对象(字符)数组,其中每个对象都有一个对象(钥匙)数组,一扇门可以通过多个钥匙打开,如本例所示

const characters = [
  { id: "1", type: "water", keys: [{ name: "key_786", door: "XOPR" }] },
  { id: "2", type: "fire", keys: [{ name: "key_23", door: "JTHF" }] },
  { id: "3", type: "wind", keys: [{ name: "key_987", door: "XOPR" }] },
];

我想要的是找到所有拥有可以打开一个特定门的钥匙的字符,例如,我想返回所有带有keys.door === 'XOPR'的字符,我该怎么做呢?
我试过了。filter .map,但是没有运气,请帮助我?我是新的React和javascript

rslzwgfq

rslzwgfq1#

您可以将Array.prototype.someArray.prototype.filter一起使用:

const result = characters.filter(ch => ch.keys.some(key => key.door === 'DOOR_NAME'));

首先通过characters执行filter,然后对每个characters执行其keys属性(数组)循环,并对后者的每个项执行chack if key.door === 'DOOR_NAME',以便为该迭代(筛选器循环)返回character

相关问题