Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用另一个对象在React中搜索对象_Javascript_Reactjs - Fatal编程技术网

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
,通常我建议使用严格的相等运算符(
==
)来比较字符串,除非您确实希望允许部分匹配,但我猜在这种情况下您不会