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))代码>使用此选项是否回答您的问题?