Задать вопрос
@FuGou

Как можно сократить этот код?

Я новичок в js, как можно сократить этот код и есть ли тут какие-либо ошибки которые можно исправить или как-то правильнее написать код?

var type_input = document.getElementById("type_input").value;
var type_name = ['фильм', 'сериал', 'мультсериал', 'мультфильм', 'аниме'];
var count_type = 0; // счетчик ошибок
var type = 0; // значение для базы данных
            for (var i = 0; i < type_name.length; i++){  
                if(type_input != type_name[i]){
                    count_type++;
                    if (count_type > 4){
                        alert('Добавьте или исправьте тип');
                        break;                           
                    }  
                }
                if(type_input == type_name[i]){
                    type = count_type + 1;
                }
            }
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
const type_input = document.getElementById("type_input").value.toLowerCase();
const type_names = ['фильм', 'сериал', 'мультсериал', 'мультфильм', 'аниме'];
const type_index = type_names.indexOf(type_input);
let type = 0;

if (type_index === -1) {
    alert('Добавьте или исправьте тип');
} else {
    type = type_index + 1; // значение для базы данных (если нужно 1-based)
}
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const type_input = document.getElementById("type_input").value;
const type_name = ['фильм', 'сериал', 'мультсериал', 'мультфильм', 'аниме'];
const type_idx = type_name.indexOf(type_input);
let type = 0;
if (type_idx === -1) {
    alert('Добавьте или исправьте тип');
} else {
    type = type_idx + 1;
}

А вообще, такое делается с помощью select, тогда невозможно ввести неправильное значение и весь этот код просто не нужен.
И в целом, не используйте var, она размещает переменную в глобальной области видимости. Вместо этого используйте const или let, в зависимости от дальнейшей иммутабельности переменной.
Используйте строгое сравнение. Нестрогое означает, что вы не уверены в типах данных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы