如何检查选项列表中是否存在jquery函数集选项

时间:2014-06-15 08:40:35

标签: jquery

这是功能

function dclock(setoption) {
    var settings = {
        // These are the defaults.
        iloc: {
            bg: { // Bulgarian
                months: [
                    "Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
                ],
                dayOfWeek: [
                    "Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
                ]
            },
            fa: { // Persian/Farsi
                months: [
                    'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'
                ],
                dayOfWeek: [
                    'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
                ]
            },
            ru: { // Russian
                months: [
                    'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
                ],
                dayOfWeek: [
                    "Вск", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
                ]
            },
            en: { // English
                months: [
                    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
                ],
                dayOfWeek: [
                    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
                ]
            },
            dh: { // English
                months: [
                    "ޖަނަވަރީ", "ފެބުރުއަރީ", "މާރޗް", "އޭޕްރިލް", "މެއި", "ޖޫން", "ޖުލައި", "އޯގަސްޓް", "ސެޕްޓެންބަރ", "އޮކްޓޯބަރ", "ނޮވެންބަރ", "ޑިސެންބަރ"
                ],
                dayOfWeek: [
                    "އާދި", "ހޯމަ", "އަން", "ބުދަ", "ބުރާ", "ހުކު", "ހޮނި"
                ]
            },
        },
        lang: 'en'
    };
    var optionset = $.extend({
        // These are the defaults.
        lang: "en"
    }, setoption);
    var monthNames, dayNames;
    if (optionset.lang !== undefined) {
        monthNames = settings.iloc[optionset.lang].months;
        dayNames = settings.iloc[optionset.lang].dayOfWeek;
    }
    else {
        monthNames = settings.iloc[settings.lang].months;
        dayNames = settings.iloc[settings.lang].dayOfWeek;
    }
$('.months').text=monthNames;
$('.days').text=dayNames;

}

当我设置变量 lang

时,它可以正常工作
dclock({lang:'dh'});

,因为 dh 存在于变量 iloc的选项列表中

我需要的是,如果我将一个值设置为变量 lang ,它在变量 iloc 中不存在,则设置并返回默认值。 例如:**

dclock({lang:'af'});

结果:

months = [
    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
],
dayOfWeek = [
    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
]

提前致谢

1 个答案:

答案 0 :(得分:2)

使用iloc方法检查hasOwnProperty中传递的语言代码,如果不可用,请将其设置为默认值en

if(!settings.iloc.hasOwnProperty(setoption.lang))
    setoption.lang = "en";

var optionset = $.extend({
    // These are the defaults.
    lang: "en"
}, setoption);