Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

Помогите избавиться от повторений if в javascript

#javascript


Здравствуйте! Есть "код":

if ( type == "cool" ){
    if ( skin.category == "cool" ){
        skinsARR[skin.categorySort] = skinsTMP;
    }
}
if ( type == "flags" ){
    if ( skin.category == "flags" ){
        skinsARR[skin.categorySort] = skinsTMP;
    }
}
if ( type == "elite" ){
    if ( skin.category == "elite" ){
        skinsARR[skin.categorySort] = skinsTMP;
    }
}
if ( type == "elite" ){
    if ( skin.category == "elite" ){
        skinsARR[skin.categorySort] = skinsTMP;
    }
}
if ( type == "vip" ){
    if ( skin.category == "vip" ){
        skinsARR[skin.categorySort] = skinsTMP;
    }
}


Выглядит очень не красиво, понимаю что можно было бы оформить лучше - но не совсем
понимаю как.
    


Ответы

Ответ 1



А теперь запихнем в один if const allowedTypes = [ "cool", "flags", "elite", "vip" ]; if(type===skin.category && allowedTypes.indexOf(type)!==-1){ skinsARR[skin.categorySort] = skinsTMP; };

Ответ 2



вариант через хеш чтобы избавиться от тяжёлого indexOf + меньше сравнений const allowedTypes = { "cool" : "cool", "flags" : "flags", "elite" : "elite", "vip" : "vip" }; if (allowedTypes[type] && type === skin.category) { // edited skinsARR[skin.categorySort] = skinsTMP; }

Ответ 3



if (type == "cool" && skin.category == "cool") { skinsARR[skin.categorySort] = skinsTMP; } if (type == "flags" && skin.category == "flags") { skinsARR[skin.categorySort] = skinsTMP; } if (type == "elite" && skin.category == "elite") { skinsARR[skin.categorySort] = skinsTMP; } if (type == "vip" && skin.category == "vip") { skinsARR[skin.categorySort] = skinsTMP; } Вот, уже в разы короче получается.

Комментариев нет:

Отправить комментарий