【发布时间】:2020-10-29 11:08:08
【问题描述】:
我是 Angular 的新手,我正在从服务器获取一个对象数组作为响应我需要搜索是否有任何数组具有相同的键值,然后将相应的数组元素值放入另一个数组中以将其显示在表中. 我的场景我将查询编号作为输入传递,例如:10002 我的询问回复包含以下详细信息 Inquirydocumentno、inquirydate、materialno、name of materialinquired 等, 我的实际反应是
[
{
InquiryDate: ["2015-03-04"]
InquiryType:["A"]
MaterialNo: ["30"]
Material Name: ["Chair"]
InquiryDocument No: ["0010000012"]
},
{
InquiryDate: ["2019-03-04"]
InquiryType:["A"]
MaterialNo: ["31"]
Material Name: ["Book"]
InquiryDocument No: ["0010000015"]
},
{
InquiryDate: ["2019-03-04"]
InquiryType:["A"]
MaterialNo: ["31"]
Material Name: ["Bag"]
InquiryDocument No: ["0010000015"]
},
{
InquiryDate: ["2015-05-19"]
InquiryType:["A"]
MaterialNo: ["34"]
Material Name: ["lamp"]
InquiryDocument No: ["0010000018"]
}
]
Here 在此响应中,查询日期和查询单据号、查询类型等详细信息固定为表头详细信息,需要显示为表头表,而物料编号和物料名称是项目详细信息,需要在单击时显示在另一个表中相应的查询文件不应该显示所有相关项目的详细信息。 例如: InquiryDocumentNo: 0010000015 在响应中出现两次我需要在标题表中显示一次,单击按钮详细信息时,它应该显示在另一个表中查询的 2 项(包,书)。 我正在尝试检查响应数组中的文档编号是否相同,并尝试将相应的项目详细信息推送到我的代码(appcomponent.ts)中的另一个数组中,但它做得正确,谁能帮我弄清楚以及如何做这个
inq =[];
for(var i=0;i<array.length;i++)
{
var element=array[i];
for(var j=i+1;j<array.length;j++)
{
var elt =array[j];
if(element.inquirydocno==elt.inquirydocno)
{
this.inq.push(elt.Materialno);
this.inq.push(elt.Materialname);
}
}
}
console.log(this.inq);
【问题讨论】:
标签: arrays angular typescript object