var result = from account in areas.SelectMany(area => area.Accounts) where account.Selected select account.AccountId;
In JavaScript:
interface IAccountDto { accountId: number; accountName: string; selected?: boolean; // not in actual DTO, just used in UI } interface IAreaDto { areaName: string; accounts: IAccountDto[]; } class Something { areas: IAreaDto[] = [ { areaName: "Philippines", accounts: [ { accountId : 168, accountName: "Account 168", selected: true }, { accountId : 169, accountName: "Account 169", selected: true }, ] }, { areaName: "China", accounts: [ { accountId : 170, accountName: "Account 170" }, { accountId : 171, accountName: "Account 171", selected: true }, ] }, ]; getResult(): number[] { let result = this.areas.map(ar => ar.accounts) .reduce((a,b) => a.concat(b), []) .filter(ac => ac.selected) .map(ac => ac.accountId) return result; } } let s = new Something(); let x = JSON.stringify(s.getResult()); document.body.innerHTML = x;
Happy Coding!
No comments:
Post a Comment