我们可以从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是唯一的。