基于值数组中的值查找对象数组中的对象-Javascript

基于值数组中的值查找对象数组中的对象-Javascript,javascript,arrays,object,Javascript,Arrays,Object,假设我有数组 const idArray = ["935", "933", "930"]; 我想获取id属性与idArray const objectsArray= [ { name: "Kevin", color: "red", id: "935" }, { name: "Ana", color: "white", id: "815" }, { name: "Maria", color: "s

假设我有数组

const idArray = ["935", "933", "930"];
我想获取id属性与
idArray

const objectsArray= [
  { 
    name: "Kevin", 
    color: "red", 
    id: "935"
  },
  { 
    name: "Ana", 
    color: "white", 
    id: "815"
  },
  { 
    name: "Maria", 
    color: "silver", 
    id: "035"
  },
  { 
    name: "Victor", 
    color: "red", 
    id: "935"
  },
  { 
    name: "Vanessa", 
    color: "red", 
    id: "933"
  },
]

因此,在本例中,我希望返回具有以下名称的对象:
Kevin
Vanessa
Victor

,您可以根据
idArray
进行筛选。如果两个阵列都很大,这可能会很慢,因为每次都需要查看
idArray

const objectsArray=[{name:“凯文”,color:“红色”,id:“935”},{name:“安娜”,color:“白色”,id:“815”},{name:“玛丽亚”,color:“银色”,id:“035”},{name:“维克多”,color:“红色”,id:“935”},{name:“凡妮莎”,color:“红色”,id:“933”},]
常数=[“935”、“933”、“930”];
let res=objectsArray.filter(o=>idArray.includes(o.id))

console.log(res)
您可以根据
idArray
进行筛选。如果两个阵列都很大,这可能会很慢,因为每次都需要查看
idArray

const objectsArray=[{name:“凯文”,color:“红色”,id:“935”},{name:“安娜”,color:“白色”,id:“815”},{name:“玛丽亚”,color:“银色”,id:“035”},{name:“维克多”,color:“红色”,id:“935”},{name:“凡妮莎”,color:“红色”,id:“933”},]
常数=[“935”、“933”、“930”];
let res=objectsArray.filter(o=>idArray.includes(o.id))

log(res)
是的,实际上使用过滤器很容易实现。
const-idArray=[“935”、“933”、“930”];
常量objectsArray=[
{
姓名:“凯文”,
颜色:“红色”,
身份证号码:“935”
},
{
姓名:“安娜”,
颜色:“白色”,
身份证号码:“815”
},
{
姓名:“玛丽亚”,
颜色:“银色”,
id:“035”
},
{
姓名:“维克多”,
颜色:“红色”,
身份证号码:“935”
},
{
姓名:“凡妮莎”,
颜色:“红色”,
身份证号码:“933”
},
];
函数getObjectsInArray(objectsArray,idsArray){
返回objectsArray.filter(o=>{
返回idsArray.indexOf(o.id)!=-1;
})
}

log(getObjectsInArray(objectsArray,idArray))
是的,实际上使用过滤器很容易实现。
const-idArray=[“935”、“933”、“930”];
常量objectsArray=[
{
姓名:“凯文”,
颜色:“红色”,
身份证号码:“935”
},
{
姓名:“安娜”,
颜色:“白色”,
身份证号码:“815”
},
{
姓名:“玛丽亚”,
颜色:“银色”,
id:“035”
},
{
姓名:“维克多”,
颜色:“红色”,
身份证号码:“935”
},
{
姓名:“凡妮莎”,
颜色:“红色”,
身份证号码:“933”
},
];
函数getObjectsInArray(objectsArray,idsArray){
返回objectsArray.filter(o=>{
返回idsArray.indexOf(o.id)!=-1;
})
}
log(getObjectsInArray(objectsArray,idArray))
const objectsArray=[{name:“凯文”,color:“红色”,id:“935”},{name:“安娜”,color:“白色”,id:“815”},{name:“玛丽亚”,color:“银色”,id:“035”},{name:“维克多”,color:“红色”,id:“935”},{name:“凡妮莎”,color:“红色”,id:“933”},]
log(find(objectsArray));
函数查找(objArray){
常数=[“935”、“933”、“930”];
var结果=[];
for(var i=0;i
const objectsArray=[{name:“凯文”,color:“红色”,id:“935”},{name:“安娜”,color:“白色”,id:“815”},{name:“玛丽亚”,color:“银色”,id:“035”},{name:“维克多”,color:“红色”,id:“935”},{name:“凡妮莎”,color:“红色”,id:“933”},]
log(find(objectsArray));
函数查找(objArray){
常数=[“935”、“933”、“930”];
var结果=[];
for(var i=0;i}
那么,你被困在哪里了?:-)做你的研究,为相关的主题,所以,给它一个尝试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。祝你好运您的数据结构不允许有效地解决此问题,我建议您(如果可能)将对象数组更改为,并且对象的键将是id,值将是一个名为color@felixmosh将其转换为哈希表肯定会加快查询速度,但我真的怀疑这些信息对OP是否有用,如果他/她在与发布的问题作斗争。那么,你被困在哪里了?:-)做你的研究,为相关的主题,所以,给它一个尝试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。祝你好运您的数据结构不允许有效地解决此问题,我建议您(如果可能)将对象数组更改为,并且对象的键将是id,值将是一个名为color@felixmosh将其转换为哈希表肯定会加快查询速度,但我真诚地怀疑,如果OP在与发布的问题作斗争时,这些信息对他/她是否有用。@matusubrava如果你愿意,你可以投票结束这个问题。@matusubrava谷歌之所以有帮助,是因为对以下问题的回答this@MatusDubrava如果你愿意,你可以投票结束这个问题。@MatusDubrava the谷歌之所以有帮助,是因为它回答了这样的问题