Javascript 显示数组中与数组值匹配的所有对象

Javascript 显示数组中与数组值匹配的所有对象,javascript,vue.js,Javascript,Vue.js,我是网络开发新手。我试图找出实现这一点的方法。这就是我的情况: 我有一个包含对象的数组,在该对象中,它包含每个对象的id。这是一个例子, [ {id: 1, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 2, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 3, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 4, content: 'asdfadf'

我是网络开发新手。我试图找出实现这一点的方法。这就是我的情况:

我有一个包含对象的数组,在该对象中,它包含每个对象的id。这是一个例子,

[ {id: 1, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 2, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 3, content: 'asdfadf', contentB: 'adsfasdf'}, {id: 4, content: 'asdfadf', contentB: 'adsfasdf'} ]
我有一个数组,它包含我想要从上面数组中得到的对象的ID。例如:

[1,4]

我想根据数组值显示对象。我应该使用什么Javascript函数

提前谢谢你

顺便说一句,我的项目目前正在使用Vue.js,我想显示的对象实际上处于Vuex状态

使用

var idsToFind=[1,4]; var data=[{id:1,content:'asdfadf',contentB:'adsfasdf'},{id:2,content:'asdfadf',contentB:'adsfasdf'},{id:3,content:'asdfadf',contentB:'adsfasdf'},{id:4,content:'asdfadf',contentB:'adsfasfasdff'}]; var result=data.filter项=>idsToFind.includeItem.id;
console.logresult 创建更好的数据结构,适合按ID查找

var data=[{id:1,content:'asdfadf',contentB:'adsfasdf'},{id:2,content:'asdfadf',contentB:'adsfasdf'},{id:3,content:'asdfadf',contentB:'adsfasdf'},{id:4,content:'asdfadf',contentB:'adsfasfasdff'}] var map=new-Mapdata.mapo=>[o.id,o] var-id=[1,4]; ids.forEachid=>console.logmap.getid使用reduce函数

var targetIdx=[1,4]; 风险值数据=[{ id:1, 内容:“asdfadf”, 内容B:'adsfasdf' }, { id:2, 内容:“asdfadf”, 内容B:'adsfasdf' }, { id:3, 内容:“asdfadf”, 内容B:'adsfasdf' }, { id:4, 内容:“asdfadf”, 内容B:'adsfasdf' }]; var result=data.reduceac,curr=> targetIdx.indexOfcurr.id>-1?[…acc,curr]:acc , [];
console.logresult;或idsToFind.includeItem。id@MikeMcCaughan我知道,但发现它比写这个答案要花更长的时间。如果这样可以改进搜索,我将标记更多的重复项@谢谢,我还以为是我写的呢。很好。我不会投反对票,因为它很有效,但这太过分了。过滤器要简单得多。@JeremyThille:只有在这一次进行查找时,我才会怀疑。当需要通过数组中对象内的唯一ID多次查找数组项时,它应该被视为处理此问题的首选方法。与@SkinnyPete的回答相同:我不会否决它,因为它可以工作,但它太过分了。答:过滤器要简单得多。@JeremyThille我完全同意你的看法,但是,重要的是要分享另一种方式,这种方式充满了我们社区的知识,显然对OP来说也是如此。这是一个公平的观点。