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 に答える