将一个数组映射到另一个Typescript

时间:2020-03-06 09:49:22

标签: javascript arrays angular typescript

我有2个具有不同模型的数组

这是第一个数组的模型

export class TenancyTenantDto  {
name!: string | undefined;
email!: string | undefined;
paymentMethodName!: string | undefined;
paymentMethodId!: number | undefined;
propertyTenantId!: number | undefined;
isPrimary!: boolean | undefined;
id!: number | undefined;
}

和第二个数组模型

 export class TenancyTenantViewModel {
    name: string;
    email: string;
    paymentMethodName: string;
    paymentMethodId: number;
    tenancyTenantId: number;
    tenantId: number;
    isPrimary: boolean;
    id: Guid;


}

我需要将1个数组映射到2个。我该怎么做?

我试图这样做this.tenants = [...tenants.map(e => new TenancyTenantViewModel({id: e.id, etc.}))];

但似乎不起作用。

1 个答案:

答案 0 :(得分:1)

定义地图:

function mapType(source: TenancyTenantDto): TenancyTenantViewModel {
     return { // Your mapping logic here }
}

用法:

const originalArray: TenancyTenantDto[] = [...]
const mappedArray: TenancyTenantViewModel[] = originalArray.map(mapType);