Angular 7의 typescript 기능을 사용하여 dataID가 동일한 json 응답의 다른 배열의 ParentDataID와 일치하지 않을 때 json 응답에서 특정 배열 만 필터링하고 싶습니다.
{ "data":[
{
"dataId":"Atlanta",
"parentDataId":"America"
},
{
"dataId":"Newyork",
"parentDataId":"America"
},
{
"dataId":"Georgia",
"parentDataId":"Atlanta"
},
{
"dataId":"South",
"parentDataId":"Atlanta"
},
{
"dataId":"North",
"parentDataId":"South"
}
]
}
상기 응답 값 dataId 뉴욕은 parentDataId 전체 어레이 JSON 응답 중 하나와 일치하지 않는다. 이제 새 배열을 만들기 위해 DataID의 두 번째 배열 만 필터링하고 싶습니다.
Typescript angular 7 에서이 유효성 검사를 받고 싶습니다.
내 출력은 아래와 같습니다 ... DataId에 parentDataId가 없습니다.
[
{
"dataId":"Newyork",
"parentDataId":"America"
},
{
"dataId":"Georgia",
"parentDataId":"Atlanta"
},
{
"dataId":"North",
"parentDataId":"South"
}
]
도움과 응답에 감사드립니다
이 StackBlitz 링크의 데모
내 솔루션은 아래 코드 스 니펫과 같습니다. TS
reducedData = [...this.data];
this.data.reduce((c,n,i) => {
this.data.reduce((d,o, inex) => {
if ( n.dataId === o.parentDataId){
this.reducedData.splice(i,1, {'dataId': 'removed', parentDataId: 'true'});
} else {
return o;
}
},{});
return n;
}, {});
this.reducedData = this.reducedData.filter (value => value.dataId !== 'removed');
html 파일
<h4> dataId does not have parentId </h4>
<hr>
<pre>
{{reducedData | json}}
</pre>
두 번째 개체를 사용 하지 않으 려면 reducedData
아래 솔루션이 작동하는 것이 좋습니다 . StackBlitz Link
component.ts
this.data.reduce((c,n,i) => {
this.data.reduce((d,o, inex) => {
if ( n.dataId === o.parentDataId) {
this.data[i]['removed'] = "removed";
} else{
return o;
}
},{});
return n;
}, {});
this.data = this.data.filter (value => value['removed'] !== 'removed');
component.html
<h4> dataId does not have parentId </h4>
<hr>
<pre>
{{data |json}}
</pre>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다