나는 백엔드 API를 쿼리하는 서비스를 가지고 있습니다. API는 일련의 쉼표로 구분 된 텍스트 행을 반환합니다. 이 열은 내가 작성한 TypeScript 클래스의 속성과 일치합니다. 클래스는 다음과 같습니다Typescript/Angular에서 객체에 배열 매핑
export class TopTalker {
constructor(
public source: string,
public protocol: number,
public packets: number,
public _percent: string,
public _tally: string
) {}
}
나는 현재과 같이 이러한에서 객체를 구축하고있다 :
[ "8.248 : 여기
이 API에 의해 반환 된 데이터의 예입니다 .215.242,6,7037358,53.111350,53.111350 ","8.248.209.245,6,2459465,18.561725,71.673076 ","192.168.2.86,6,604136,4.559450,76.232525 ","192.168.2.43,6,295422,2.229567 , "78.462092", "192.168.2.39,6,254746,1.922583,80.384675", "8.248.211.241,6,182544,1.377670,81.762345", "192 , "8.250.125.246,6,152862,1.153658,84.275697", "8.248.213.243, 6,93544,0.705982,84.981679", "167.206.10.209, 69862 , 0.527253,85.508931 "," "]getTopTalkers() { this._silk.topTalkers().subscribe( data => { let results = <any>[]; results = data; this.topTalkers = <any>[]; for (let row of results) { let thisTalker = row.split(/,/); let a = new TopTalker( thisTalker[0], thisTalker[1], thisTalker[2], thisTalker[3], thisTalker[4]); if(thisTalker.length > 1){ // Was getting a blank line this.topTalkers.push(a); } } console.log(this.largestTransfers); }, err => console.error(err), () => console.log('Processed talkers') ); }
이 방법은 효과가 있지만 실제로는 잘못되었습니다. 각도 또는 TypeScript의 일부 기능이 없기 때문에 각 줄을 매핑하여 개체 배열을 직접 만들 수 있습니까? 내가 제대로 코드를 이해한다면
을 쉼표로 구분 된 문자열 배열을 TopTalkers 배열로 바꾸고 싶습니까? – mchandleraz
변환을 행렬을 받아서 가독성을 위해 TopTalker를 반환하는 자체 팩토리 함수로 이동할 수는 있지만 그 정도입니다. – toskv
@toskv 이렇게 모듈화하는 것 외에도 실제로 할 수있는 "자동"이란 무엇입니까? –