我有一个对象(字符)数组,其中每个对象都有一个对象(钥匙)数组,一扇门可以通过多个钥匙打开,如本例所示
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
1条答案
按热度按时间rslzwgfq1#
您可以将Array.prototype.some与Array.prototype.filter一起使用:
首先通过
characters
执行filter
,然后对每个characters
执行其keys
属性(数组)循环,并对后者的每个项执行chack ifkey.door === 'DOOR_NAME'
,以便为该迭代(筛选器循环)返回character