Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 如何比较两个不同的API请求以获取和显示Reactjs中的重复值?_Arrays_Reactjs - Fatal编程技术网

Arrays 如何比较两个不同的API请求以获取和显示Reactjs中的重复值?

Arrays 如何比较两个不同的API请求以获取和显示Reactjs中的重复值?,arrays,reactjs,Arrays,Reactjs,我有这样的情况: 我正在使用axios从API接收两个不同的请求。我需要做的是比较两者以显示此值是否重复。 1.其中一个请求包含一个具有作者id的嵌套数组,另一个请求包含相同的id。如果id等于,我将需要显示作者名称,即在作者内部 我怎样才能得到这个呢?据我所知,如果帖子和作者的值是相同的id,您是否在尝试获取author中的值 const作者=[ { id:1, 名称:“苹果” }, { id:2, 名称:“香蕉” }, { id:3, 名称:“橙色” } ]; 常数员额=[ { 元数据:{

我有这样的情况:

我正在使用axios从API接收两个不同的请求。我需要做的是比较两者以显示此值是否重复。 1.其中一个请求包含一个具有作者id的嵌套数组,另一个请求包含相同的id。如果id等于,我将需要显示作者名称,即在作者内部


我怎样才能得到这个呢?

据我所知,如果帖子和作者的值是相同的id,您是否在尝试获取author中的值

const作者=[
{
id:1,
名称:“苹果”
},
{
id:2,
名称:“香蕉”
},
{
id:3,
名称:“橙色”
}
];
常数员额=[
{
元数据:{
作者:2
}
},
{
元数据:{
作者:3
}
},
{
元数据:{
作者:4
}
}
];
常量mapItem=[];
authors.forEach(author=>{
posts.forEach(post=>{
if(author.id==post.metadata.authorId){
mapItem.push(作者);
}
});
});
console.log(mapItem);
//[{id:2,名称:'banana'},{id:3,名称:'orange'}] 

您可以将作者ID存储在一个集合中,并通过检查该ID是否在集合中来过滤
作者
,以实现线性时间复杂度:

const authorIDs = new Set(posts.map(post => post.metadata.authorId));
const duplicateAuthors = authors.filter(author => authorIDs.has(author.id));

就这样!非常感谢,真的很有帮助。我的荣幸
const authorIDs = new Set(posts.map(post => post.metadata.authorId));
const duplicateAuthors = authors.filter(author => authorIDs.has(author.id));