0

我在 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();
}
4

1 回答 1

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();
}
于 2013-07-24T10:36:53.263 回答