[英]How to use an enum to define another enum?
我在JavaScript中定義了以下枚舉:
/**
* Represents the document type.
*
* @enum
*/
var DOCUMENT_TYPE = {
TC_INVOICE: 1,
TC_CREDIT_NOTE: 2,
OFFHIRE_INVOICE: 3,
OFFHIRE_CREDIT_NOTE: 4
}
現在,我想為文檔類“發票”和“貸方通知單”定義另一個枚舉。 我嘗試過這樣的事情:
/**
* Represents the document class ("invoice" or "credit note").
*
* @enum
*/
var DOCUMENT_CLASS = {
INVOICE: {
1: DOCUMENT_TYPE.TC_INVOICE,
3: DOCUMENT_TYPE.OFFHIRE_INVOICE
},
CREDIT_NOTE: {
2: DOCUMENT_TYPE.TC_CREDIT_NOTE,
4: DOCUMENT_TYPE.OFFHIRE_CREDIT_NOTE
}
}
數據庫列保存文檔類型的值(可能的整數值:1、2、3、4)。 現在,我要檢查它是發票還是貸方通知單,例如:
if ( DOCUMENT_CLASS.INVOICE ) {
doSomething();
} else if ( DOCUMENT_CLASS.CREDIT_NOTE ) {
doSomeOtherThing();
}
應該這樣做:
if (DOCUMENT_CLASS.INVOICE[column]) {
doSometjing();
} else if (DOCUMENT_CLASS.CREDIT_NOTE[column]) {
doSomeOtherThing();
}
column
是一個變量,其中包含您要檢查的數據庫列中的值。
您可以執行此操作的另一種方法是通過制作文檔類數組:
var DOCUMENT_CLASS = {
INVOICE: [ DOCUMENT_TYPE.TC_INVOICE, DOCUMENT_TYPE.OFFHIRE_INVOICE ],
CREDIT_NOTE: [ DOCUMENT_TYPE.TC_CREDIT_NOTE, DOCUMENT_TYPE.OFFHIRE_CREDIT_NOTE ]
};
然后,您將編寫:
if (DOCUMENT_TYPE.INVOICE.indexOf(column) != -1) {
doSomething();
} else if (DOCUMENT_TYPE.CREDIT_NOTE.indexOf(column) != -1) {
doSomeOtherThing();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.