我们可以从javascript中的单个对象键值中获取对象吗?

我们可以从javascript中的单个对象键值中获取对象吗?,javascript,Javascript,我有一个对象数组-像这样- test: [ { id:'1', name:'A' }, { id:'2', name:'B' }, ] 假设我在对象测试中有一个值2作为id存在。若id值存在于整个数组中,我想从数组中获取整个对象 input - 2, 预期输出-{id:'2',name:'B'} 我们怎样才能得到它?有什么可能的解决办法吗?只要使用- const val=[ { id:'1', 名称:‘A’, }, { id:'2', 名称:‘B’, }, ]; const res=

我有一个对象数组-像这样-

test: [
{
 id:'1',
 name:'A'
},
{
 id:'2',
 name:'B'
},
]
假设我在对象测试中有一个值2作为id存在。若id值存在于整个数组中,我想从数组中获取整个对象

input - 2,
预期输出-
{id:'2',name:'B'}

我们怎样才能得到它?有什么可能的解决办法吗?

只要使用-
const val=[
{
id:'1',
名称:‘A’,
},
{
id:'2',
名称:‘B’,
},
];
const res=val.find(obj=>obj.id=='2');

控制台日志(res)有多种方法可以做到这一点。我是这样做的


let测试=[
{
id:'1',
姓名:“A”
},
{
id:'2',
姓名:'B'
}
];
让结果=(param)=>test.filter(el=>{
返回el.id==param
});

console.log(结果(2))
您将使用
filter
函数:或
find
:使用方法:
array.find(obj=>obj.id==input)
这是否回答了您的问题
filter()
返回所有匹配对象的数组,而不是OP要求的对象本身。@pilchard
.filter()
方法可以工作,但正如您正确指出的,它将返回数组而不是对象本身,但更重要的是,在这种情况下,它不是正确的方法,因为即使已经找到目标对象,它也会不必要地迭代整个数组
find()
findIndex()
方法一找到目标对象就会停止。这很公平。我试着输入两个ID并使其工作。我想可以假定id是唯一的。