0

次のコードを使用してドロップボックスにカスタム選択を追加する小さなスクリプトを使用しています

if (typeof customsum1 != "undefined") { editsummAddOptionToDropdown(dropdown, customsum1); }
if (typeof customsum2 != "undefined") { editsummAddOptionToDropdown(dropdown, customsum2); }
if (typeof customsum3 != "undefined") { editsummAddOptionToDropdown(dropdown, customsum3); }

等々。これは行を追加することで拡張できますが、変数は同じ形式なので、設定された変数がcustomsum#形式に従う限り、理論的には無限のカスタム選択を許可するようにこれを凝縮する方法はありますか?

4

2 に答える 2

4

配列とループを使用します。

var sums = [customsum1, customsum2, customsum3];

for (var i=0; i<sums.length; i++) {
    if (typeof sums[i] !== 'undefined') {
         editsummAddOptionToDropdown(dropdown, sums[i]);
    }
}
于 2013-01-17T00:11:16.917 に答える
4

これらがグローバル変数であると仮定すると、ループを使用できます。

for( var i=1; i<=3; i++) {
    if( typeof window['customsum'+i] != "undefined") editsummAddOptionToDropdown(dropdown,window['customsum'+i]);
}

ただし、とにかく配列を使用することをお勧めします。

var customsum = [
    /* what you normally have for customsum1 */,
    /* same for customsum2 */,
    ...
];
for( var i=0, l=customsum.length; i<l; i++) {
    if( typeof customsum[i] != "undefined") editsummAddOptionToDropdown(dropdown,customsum[i]);
}
于 2013-01-17T00:13:26.837 に答える