Javascript 获取与条件匹配的对象数组中的第一个对象

Javascript 获取与条件匹配的对象数组中的第一个对象,javascript,json,Javascript,Json,我有这个对象数组 [{},{"IGG":"\n1000400078","Date effet":"16/04/2007","Statut déontologie":"A","Version charte":"1","N°Charte":"0","Nom charte":"Non exposé","Statut Charte":"A","Date envoi charte":"","Dat 1er relance":"","Date 2eme relance":"","Date 3 eme rel

我有这个对象数组

[{},{"IGG":"\n1000400078","Date effet":"16/04/2007","Statut déontologie":"A","Version charte":"1","N°Charte":"0","Nom charte":"Non exposé","Statut Charte":"A","Date envoi charte":"","Dat 1er relance":"","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":""},{"IGG":""},{"IGG":"\n1000400103","Date effet":"23/05/2016","Statut déontologie":"A","Version charte":"2","N°Charte":"1","Nom charte":"Régime Général","Statut Charte":"A","Date envoi charte":"27/09/2010","Dat 1er relance":"07/10/2010","Date 2eme relance":"18/10/2010","Date 3 eme relance":"28/10/2010","Date de validation":"20/11/2015"},{},{"IGG":"\n1000400381","Date effet":"04/09/2019","Statut déontologie":"A","Version charte":"2","N°Charte":"3","Nom charte":"Initié Société Générale","Statut Charte":"A","Date envoi charte":"16/09/2019","Dat 1er relance":"26/09/2019","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":"27/09/2019"},{},{"IGG":"\n1000401040","Date effet":"01/09/2015","Statut déontologie":"A","Version charte":"2","N°Charte":"5","Nom charte":"Régime Général & Initié Société Générale","Statut Charte":"A","Date envoi charte":"03/09/2015","Dat 1er relance":"14/09/2015","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":"18/09/2015"},{},{"IGG":"\n1007829487","Date effet":"03/12/2019","Statut déontologie":"A","Version charte":"1","N°Charte":"8","Nom charte":"Conseiller Gestion Patrimoine","Statut Charte":"A","Date envoi charte":"13/12/2019","Dat 1er relance":"23/12/2019","Date 2eme relance":"02/01/2020","Date 3 eme relance":"13/01/2020","Date de validation":"14/01/2020"},{},{"IGG":"\n"}]
我想得到一个包含IGG in URL查询参数的具有IGG值的对象

例如,如果我使用localhost:8000/igg?igg=1000400078,我需要获取具有“igg”:\n1000400078”的对象,因此此对象:

{"IGG":"\n1000400078","Date effet":"16/04/2007","Statut déontologie":"A","Version charte":"1","N°Charte":"0","Nom charte":"Non exposé","Statut Charte":"A","Date envoi charte":"","Dat 1er relance":"","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":""}
所以我试着:

json.find(item => i.includes(item.IGG);
但它又回来了

[{"IGG":""}]

有人能帮我一下吗

你的
包含测试是反向的,应该是
item.IGG.includes(i)

您还需要检查
item.IGG
是否存在,否则在
未定义的
上调用
.includes()
时会出现错误

const json=[{},{“IGG”:“\n1000400078”,“生效日期”:“2007年4月16日”,“状态表”:“A”,“版本表”:“1”,“N°表”:“0”,“名称表”:“非公开”,“状态表”:“A”,“日期环境表”:“日期关系”:“日期关系”:“日期3关系”:“日期失效”:“},{”IGG:“日期”:“\n1000103”,“生效日期”:”2016年5月23日,“本体论”中的“A”、“版本图表”中的“2”、“N”图表中的“1”、“名称图表”中的“Régime GéNéral”、“状态图表”中的“A”、“日期环境图表”中的“27/09/2010”、“日期关系”中的“07/10/2010”、“日期关系”中的“18/10/2010”、“日期3 eme关系”中的“28/10/2010”、“日期取消验证”中的“20/11/2015”、{}、{}、{09“IGG”:“N1000381”、“生效日期”中的“2019 4/04”《本体论》:“A”,“版本表”:“2”,“N°表”:“3”,“名称表”:“初始社会关系”,“本体论”:“A”,“日期环境表”:“2019年9月16日”,“日期关系”:“2019年9月26日”,“日期关系”:“日期3 eme关系”:“日期取消确认”:“2019年9月27日”},{“IGG”:“2015年9月1日”,“本体论”:“日期”版本图表“:”2“,”N°图表“:”5“,”名义图表“:”体制改革与初始社会改革“,”现状图表“:”A“,”日期环境图表“:”2015年9月3日“,”日期关系“:”2015年9月14日“,”日期关系“,”日期3 eme关系“,”日期取消确认“:”2015年9月18日“,”,{},{”IGG“,”日期生效日期“:”2019年12月3日“,”现状图表“,”A“,”版本图表“:”1“,”N°图表“:”8“,”名称图表“:”顾问示意图“,”状态图表“:”A“,”日期环境图表“:”2019年12月13日“,”日期关系“:”2019年12月23日“,”日期关系“:”2020年1月2日“,”日期3 eme关系“:”2020年1月13日“,”日期取消验证“:”2020年1月14日“,”,{},{IGG:“\N}]
设i=“1000400078”;

console.log(json.find(item=>item.IGG&&item.IGG.includes(i));
您必须与浏览器中的url进行比较,因此使用
位置

const data = [{}, {"IGG":"\n1000400078","Date effet":"16/04/2007","Statut déontologie":"A","Version charte":"1","N°Charte":"0","Nom charte":"Non exposé","Statut Charte":"A","Date envoi charte":"","Dat 1er relance":"","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":""},{"IGG":""},{"IGG":"\n1000400103","Date effet":"23/05/2016","Statut déontologie":"A","Version charte":"2","N°Charte":"1","Nom charte":"Régime Général","Statut Charte":"A","Date envoi charte":"27/09/2010","Dat 1er relance":"07/10/2010","Date 2eme relance":"18/10/2010","Date 3 eme relance":"28/10/2010","Date de validation":"20/11/2015"},{},{"IGG":"\n1000400381","Date effet":"04/09/2019","Statut déontologie":"A","Version charte":"2","N°Charte":"3","Nom charte":"Initié Société Générale","Statut Charte":"A","Date envoi charte":"16/09/2019","Dat 1er relance":"26/09/2019","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":"27/09/2019"},{},{"IGG":"\n1000401040","Date effet":"01/09/2015","Statut déontologie":"A","Version charte":"2","N°Charte":"5","Nom charte":"Régime Général & Initié Société Générale","Statut Charte":"A","Date envoi charte":"03/09/2015","Dat 1er relance":"14/09/2015","Date 2eme relance":"","Date 3 eme relance":"","Date de validation":"18/09/2015"},{},{"IGG":"\n1007829487","Date effet":"03/12/2019","Statut déontologie":"A","Version charte":"1","N°Charte":"8","Nom charte":"Conseiller Gestion Patrimoine","Statut Charte":"A","Date envoi charte":"13/12/2019","Dat 1er relance":"23/12/2019","Date 2eme relance":"02/01/2020","Date 3 eme relance":"13/01/2020","Date de validation":"14/01/2020"},{},{"IGG":"\n"}]

const result = data.find(item => item.IGG.replace(/[^a-zA-Z ]/g, '') === location.search.split('igg=')[1]);

console.log(result);

i
的值是多少?i等于URL!中的查询(如果您在localhost:8000/igg?igg=5,那么i=5)这个答案是错误的!与url位置无关,
includes
不适合完美匹配…因为如果
a
b
的子字符串,则返回true:-|我假设url参数已经提取到变量
I
。需要一个子字符串,因为
item.IGG
以h新行。虽然也可以通过剥离新行,然后进行精确比较来完成。