Javascript 使用另一个对象在React中搜索对象
嗨,我有这样的东西,效果很好:Javascript 使用另一个对象在React中搜索对象,javascript,reactjs,Javascript,Reactjs,嗨,我有这样的东西,效果很好: const handleFavour = () => { const { developers } = state; const results = developers.filter(list => list.uid.includes("authid") ); setSearchResults(results); console.log(results); }; 但是现在插入“authid”如果我想使用另一个包含许多au
const handleFavour = () => {
const { developers } = state;
const results = developers.filter(list =>
list.uid.includes("authid")
);
setSearchResults(results);
console.log(results);
};
但是现在插入“authid”如果我想使用另一个包含许多authid的对象或数组进行搜索,我该如何进行搜索?搜索很长时间后,找不到任何内容。如果要检查数组中的任何元素是否与另一个数组中的任何元素匹配,可以将当前解决方案与
结合使用。一些
const handleFavour = () => {
const allowedIds = ['id1', 'id2'];
const { developers } = state;
const results = developers.filter(list =>
list.uid.some(uid => allowedIds.includes(uid))
);
setSearchResults(results);
console.log(results);
};
此处为。如果列表中的任何元素也存在于AllowedId
中,则一些将返回true
根据您在评论中所描述的情况,您似乎想要这样的东西:
const handleFavour = () => {
const users = [{ auth: 'id1' }, { auth: 'id2' }];
const { developers } = state;
const results = developers.filter(list =>
users.some(user => user.auth === list.uid)
);
setSearchResults(results);
console.log(results);
};
我最初认为list.uid
是一个数组,因为您使用的是。includes
,通常我建议使用严格的相等运算符(==
)来比较字符串,除非您确实希望允许部分匹配,但我猜在这种情况下您不会