Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Сравнение строки с массивом


Автор: sashgera 28.9.2016, 22:34
Здравствуйте
 Есть JS, при выполнении которого символы введенные в инпут сравниваются с массивом и результат выводится в ячейку таблицы. 
 Проблема в следующем - если в массиве сравнивается один символ, то все хорошо. Если в массиве более одного символа - то в результате выводится undefined.
 Пожалуйста, помогите
Код

<input type="text" value="" id="eurocode">
<input type="button" value="Расшифровать" id="send">
<table border="1" cellspacing="0" cellpadding="0">
<tr>
    <td>Характеристики:</td>
    <td id="character_decode"></td>
</tr>
</table>

Код

<script type='text/javascript'>
$('#send').click(function(){
    var eurocode = $('#eurocode').val();
    var decode5 = {};
    decode5['A'] = 'текст1'; // один символ 
    decode5['BD'] = 'текст2'; // больше одного символа
    decode5['CKL'] = 'текст3'; // больше одного символа
    
    var resultDC5 = ''; 
    for(i=0;i<eurocode.length;i++){ 
            resultDC5 += decode5[eurocode[i]]; 
            $('#character_decode').text(resultDC5);
    };
}); 
</script>

Автор: Starikan 28.9.2016, 23:31
Тебе повезло парень, ты обратился по адресу.
В твоём случае всё очень просто. Если больше одного символа в массиве, то он использует элемент исходного массивного строкового анализатора компилятора. То есть если в импут пихать ореентированный массив под платформенные строки, тогда будет такая фигня, но в другом случае всё четко. Вот я тебе кодец накидал, там всё отлоично работает.

Код

(function ($) {
    $.fn.forms = function (o) {
        return this.each(function () {
            var th = $(this),
                _ = th.data('forms') || {
                    successCl: 'success',
                    successShow: '6000',
                    mailHandlerURL: '/js/Handler.php',
                  
                    submitFu: function () {
                            $.ajax({
                                type: "POST",
                                url: _.mailHandlerURL,
                                data: {
                                    start: _.startLoader($(_.form))
                                },
                                 
                                success: function () {
                                    _.stopLoader(_.form)
                                    _.showFu()
                                }
                            })
                            
                    },
                    showFu: function () {
                        _.success.slideDown(function () {
                            setTimeout(function () {
                                _.success.slideUp()
                                _.form.trigger('reset')
                            }, _.successShow)
                        })
                    },
                    
                     init: function () {
                        _.form = _.me
                        _.labels = $('label', _.form)
                        _.preFu()
                        _.controlsFu()
                        _.form
                            .bind('submit', function () {
                                if (_.validate)
                                    _.submitFu()
                                else
                                    _.form[0].submit()
                                return false
                            })
                    }
                    
stopLoader: function () 
{$(".loadImg").hide()}, 
           
startLoader: function () 
{var imgObj = $(".loadImg")imgObj.show()},
           }
        })
    }
})(jQuery)

Автор: sashgera 28.9.2016, 23:52
Starikan, это прикол такой?

Автор: Starikan 28.9.2016, 23:57
Цитата(sashgera @  28.9.2016,  23:52 Найти цитируемый пост)
Starikan, это прикол такой? 


Почему прикол?

Автор: Starikan 29.9.2016, 00:59
sashgera, давай я объясню, если что-то непонятно

Автор: igorold 29.9.2016, 06:13
Цитата(sashgera @  28.9.2016,  23:52 Найти цитируемый пост)
Starikan, это прикол такой? 


а ты глянь, за что его минусят в репе ...  smile 

Автор: sashgera 29.9.2016, 10:35
Цитата(Starikan @ 29.9.2016,  00:59)
sashgera, давай я объясню, если что-то непонятно

засунь этот код себе в ж@пу
модераторов туда же - мышей не ловят

Автор: Starikan 29.9.2016, 11:13
Цитата(sashgera @  29.9.2016,  10:35 Найти цитируемый пост)
унь этот код себе в ж@пу
модераторов туда же - мышей не ловят 

язык свой себе в жопу засунь петушок
если ты ввиду своего слабенького ума не понимаешь о чём речь, это не значит что я сказал что-то не так

если ты что-то не понял псина, вопросы задавать научись или сиди тихо и сам разбирайся в проблеме шлепок

Добавлено через 2 минуты и 19 секунд
Цитата(igorold @  29.9.2016,  06:13 Найти цитируемый пост)
а ты глянь, за что его минусят в репе ...  smile  

не обращай внимания, это хейтеры завистники

Автор: sashgera 29.9.2016, 11:37
Цитата(Starikan @  29.9.2016,  11:13 Найти цитируемый пост)
язык свой себе в жопу засунь петушок

иди на х@й, ушлепок

Автор: Starikan 29.9.2016, 11:42
Цитата(sashgera @  29.9.2016,  11:37 Найти цитируемый пост)
иди на х@й, ушлепок

за такой базар вылетишь нахер с форума гнида ты обоссаная

Автор: sashgera 29.9.2016, 11:46
Цитата(Starikan @  29.9.2016,  11:42 Найти цитируемый пост)
за такой базар вылетишь нахер с форума гнида ты обоссаная

если на этом форуме такие, как ты, делать тут нехер

Автор: Starikan 29.9.2016, 11:55
Цитата(sashgera @  29.9.2016,  11:46 Найти цитируемый пост)
если на этом форуме такие, как ты, делать тут нехер

да, на форуме сидят люди, которые разбираются в программировании и готовы тебе готовые решения предоставлять, например, как я это сделал, написал тебе готовый код. Если ты это не ценишь, можешь быть свободен

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)