我在JavaScript中定义了以下枚举:
/**
* Represents the document type.
*
* @enum
*/
var DOCUMENT_TYPE = {
TC_INVOICE: 1,
TC_CREDIT_NOTE: 2,
OFFHIRE_INVOICE: 3,
OFFHIRE_CREDIT_NOTE: 4
}
现在我想为文档类“invoice”和“credit note”定义另一个枚举。我试过这样的事情。:
/**
* 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();
}
答案 0 :(得分:1)
这应该这样做:
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();
}