如何在 JavaScript 中比较两个不同数组中的两个特定元素

发布于 2025-01-21 02:38:43 字数 392 浏览 1 评论 0原文

我有两个状态,状态A和状态B第一个包含一个对象女巫,该对象是包含用户ID的源头,在状态B中,我有用户ID。 因此,我想知道如何将其与用户ID进行比较
这是我的尝试,但它没有起作用,因为它为我提供了所有用户,并且没有比较:

const PostuledBy = ({ offrr, dev }) => {
  const [listdev , setListdev]=useState([]);


useEffect(()=>{
setListdev(dev
  ?.filter((el, index) => {
    return offrr.postuledby.filter((ell) => ell._id === el._id);
  }))
},[])
return ()

i have two states , state A and state B the first one contain an object witch is postuledby that contain the id of user and in state B i have the user id .
so i wanna know how to compare postuledby with user id
this is my try but it did not work cause it give me all the users and didn't compare :

const PostuledBy = ({ offrr, dev }) => {
  const [listdev , setListdev]=useState([]);


useEffect(()=>{
setListdev(dev
  ?.filter((el, index) => {
    return offrr.postuledby.filter((ell) => ell._id === el._id);
  }))
},[])
return ()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠栀 2025-01-28 02:38:43

尝试一下:

function compareByInnerId(AArray, BArray){
    return AArray.filter(el=>BArray.includes(el.id))
}

我并没有真正获得整个命名内容,但是上面的代码期望barray仅具有 IDS 。类似于:[1,32,4]和Aarray具有整个对象。例如:[{name:“ blah”,id:1},{name:“ mlah”,id:32}]>

try this:

function compareByInnerId(AArray, BArray){
    return AArray.filter(el=>BArray.includes(el.id))
}

I didn't really got the whole postuledby naming thing but the code above expects the BArray to have only the ids. something like: [1,32,4] and AArray to have the whole object. ex: [{name:"blah", id:1}, {name:"mlah", id:32}]

雪若未夕 2025-01-28 02:38:43

你有 2 个数组,一个是用于控制和其他包含对象的 id。

const ids = ["1", "2", "7", "75"];

const objArr = [
    { id: "1", name: "mike" },
    { id: "3", name: "jesse" },
    { id: "75", name: "Den" },
    { id: "89", name: "Jen" }
  ];

使用简单的过滤器,您可以找到 ids 数组中包含的对象:

const [result, setResult] = useState([]);

useEffect(() => {
    setResult(objArr.filter((obj) => ids.some((id) => id === obj.id)));
  }, []);

这是codesandbox中的一个简单示例

you have 2 arrays, one is ids for control and other containing objects.

const ids = ["1", "2", "7", "75"];

const objArr = [
    { id: "1", name: "mike" },
    { id: "3", name: "jesse" },
    { id: "75", name: "Den" },
    { id: "89", name: "Jen" }
  ];

with a simple filter you can find the objects containing in ids array:

const [result, setResult] = useState([]);

useEffect(() => {
    setResult(objArr.filter((obj) => ids.some((id) => id === obj.id)));
  }, []);

here is a simple example in codesandbox

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文