Javascript 按ID访问数组中的多个键

Javascript 按ID访问数组中的多个键,javascript,arrays,Javascript,Arrays,我有这样一个数组: 让productsArray=[ {名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!', {名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám

我有这样一个数组:

让productsArray=[
{名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!',
{名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám napod!',
{名称:'Filc díszek',id:'761519',价格:'2800',src:'161029211220_761519.jpeg',座右铭:'Legyen Szep a karácsonyod!',}
];

console.log(productsArray)要以优化的方式执行此操作,您需要将id映射到对象的数据结构。这将大大减少查找时间,因为您知道需要什么记录,并且不需要解析所有记录

像这样构建新的数据结构

让productsArray=[
{名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!',
{名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám napod!',
{名称:'Filc díszek',id:'761519',价格:'2800',src:'161029211220_761519.jpeg',座右铭:'Legyen Szep a karácsonyod!',}
];
const productsHash=[];
productsArray.forEach((product)=>{productsHash[product.id]=product;});
log(“id 761519的数据是什么?”);

console.log(productsHash[761519])您可以使用
查找

让productsArray=[
{名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!',
{名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám napod!',
{名称:'Filc díszek',id:'761519',价格:'2800',src:'161029211220_761519.jpeg',座右铭:'Legyen Szep a karácsonyod!',}
];
const output=productsArray.find(({id})=>{return id==='148332'});
控制台日志(输出);
函数findElementById(arr,_id){
返回arr.find(({id})=>{return id====\u id});
}
log(findElementById(productsArray,'148332');

log(findElementById(productsArray,'971487')要详细说明Kunal的评论,您可以以下列方式使用:

让productsArray=[
{名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!',
{名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám napod!',
{名称:'Filc díszek',id:'761519',价格:'2800',src:'161029211220_761519.jpeg',座右铭:'Legyen Szep a karácsonyod!',}
];
常量idFromButton='148332'//假设您从按钮id获得此值
const foundProduct=productsArray.find((el)=>el.id==idFromButton);
控制台日志(foundProduct)
如果要编辑该对象,可以使用方法来查找该对象的索引;如果只需要值,可以使用
find
方法

以身作则
让productsArray=[
{名称:'Mandala-horgolt dekoráció',id:'148332',价格:'3000',src:'200913183702_148332.jpeg',格言:'Tipp:tedd egyedivésaját díszítéssel!',
{名称:'Nyulak fatörzsben',id:'971487',价格:'5800',src:'200526104718_971487.jpeg',座右铭:'Legyn vidám napod!',
{名称:'Filc díszek',id:'761519',价格:'2800',src:'161029211220_761519.jpeg',座右铭:'Legyen Szep a karácsonyod!',}
];
常数id='148332';

log(productsArray.find(item=>item.id==id))使用此选项是否回答您的问题?