在 Angular 2 和 Typescript 中定义数组内的数组
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39017654/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Define arrays within array in Angular 2 and Typescript
提问by weggi_swa
In Angular 2 I was wondering if it was possible to define an array that has multiple other arrays in it. It is probably easier to just show what I mean:
在 Angular 2 中,我想知道是否可以定义一个包含多个其他数组的数组。展示我的意思可能更容易:
I started out using this:
我开始使用这个:
export class PaymentDetails {
account: any[];
bpNumber: number;
}
but this gave me the problem that when I populated it I couldn't really access the data in the account array, as I want more arrays inside of it.
但这给了我一个问题,当我填充它时,我无法真正访问 account 数组中的数据,因为我想要在它里面有更多的数组。
So now i would like to define my class like this:
所以现在我想这样定义我的类:
export class PaymentDetails {
account: [
debitAccount: [
{
debitAccountId: string;
debitBankCode: string;
debitBankName: string;
debitCountryCode: string;
debitAccountNumber: string;
debitAccountHolder: string;
debitContinous: string;
debitDueDate: string;
iban: string;
bic: string;
}
],
ccAccount: [
{
ccAccountId: string;
ccCompanyCode: string;
ccNumber: string;
ccStart: string;
ccExpiry: string;
ccDsbTransactionId: string;
ccCardholderName: string
}
]
];
bpNumber: number;
}
Is this at all possible?
这是可能吗?
The class is getting populated with this InMemoryDataService
该类正在填充此 InMemoryDataService
export class InMemoryDataService {
createDb() {
let paymentDetailsDB = [
{
account: [
{
debitAccount: [
{
debitAccountId: '8736583',
debitBankCode: '45345',
debitBankName: 'KSK HGTT',
debitCountryCode: 'DE',
debitAccountNumber: '123453463',
debitAccountHolder: 'A Berg',
debitContinous: '',
debitDueDate: '',
iban: 'DE12344235',
bic: '324645',
},
{
debitAccountId: '6567456',
debitBankCode: '55463453',
debitBankName: 'GRDFE',
debitCountryCode: 'DE',
debitAccountNumber: '000123492',
debitAccountHolder: 'A Berg',
debitContinous: '',
debitDueDate: '',
iban: 'DE43523453',
bic: '123547665',
}
],
ccAccount: [
{
ccAccountId: '23413',
ccCompanyCode: '254345',
ccNumber: '238857827368837',
ccStart: '2010-10-05',
ccExpiry: '2018-10-05',
ccDsbTransactionId: '235231',
ccCardholderName: 'Anne Berg',
}
],
}
],
bpNumber: 4711,
}
];
return {paymentDetailsDB};
}
}
回答by mxii
Your definition should look like this:
您的定义应如下所示:
anonymous type variant:
匿名类型变体:
export class PaymentDetails {
accounts:
{
debitAccounts:
{
debitAccountId: string;
debitBankCode: string;
debitBankName: string;
debitCountryCode: string;
debitAccountNumber: string;
debitAccountHolder: string;
debitContinous: string;
debitDueDate: string;
iban: string;
bic: string;
}[],
ccAccounts:
{
ccAccountId: string;
ccCompanyCode: string;
ccNumber: string;
ccStart: string;
ccExpiry: string;
ccDsbTransactionId: string;
ccCardholderName: string
}[],
bpNumber: number;
};
}
named types (you should use this! :])
命名类型(你应该使用它!:])
export class DebitAccount {
Id: string;
BankCode: string;
BankName: string;
CountryCode: string;
Number: string;
Holder: string;
Continous: string;
DueDate: string;
iban: string;
bic: string;
}
export class CcAccount {
Id: string;
CompanyCode: string;
Number: string;
Start: string;
Expiry: string;
DsbTransactionId: string;
CardholderName: string
}
export class Account {
debitAccounts: DebitAccount[];
ccAccounts: CcAccount[];
bpNumber: number;
}
export class PaymentDetails {
account: Account[];
}
回答by mohit uprim
Nested array could be defined as the following:
嵌套数组可以定义如下:
items = [
{name:'xyz', subMenuItem:[{name:'abc'}, {name:'cde'}], icon:'home'},
{name:'pqr', subMenuItem:[{name:'abc'}, {name:'cde'}], icon:'home'},
];