• Нужно изменить программу так, чтобы при введении двух пробелов в форме ввода в результате не выдавало 2 запятые.


    <html>
    <head>
      <title>Первая лабораторная работа</title>

      <script>
         //Получение данных с формы
         var mA;
         var mB;

         //Функция проверки на существование элемента в массиве
         function isElementInMass(mass, el)
             {
            for(var i=0; i<mass.length; i++)
            {
                if(mass[i] == el)   
                    return    true;
            }
            return false;
        }



         //Функция объединения
         function union(mass1, mass2)
             {
                var mas_result = Array();   
                     for(var i=0; i<mass1.length; i++)
            {
                if(!isElementInMass(mas_result, mass1[i]))   
                    mas_result.push(mass1[i]);
            }
           
            for(var i=0; i<mass2.length; i++)
            {
                if(!isElementInMass(mas_result, mass2[i] ))   
                    mas_result.push(mass2[i]);
            }

            return mas_result;
        }

         //Функция пересечения
         function cross(mass1, mass2)
             {
                var mas_result = Array();   
            for(var j=0; j<mass2.length; j++)
            {
                if(isElementInMass(mass1, mass2[j] ) &&
                               !isElementInMass(mas_result, mass2[j] ))   
                    mas_result.push(mass2[j]);
            }

            return mas_result;
        }


         function getData()
        {
            document.getElementById("result").innerHTML = "";
            mA = document.getElementById("massA").value;
            mB = document.getElementById("massB").value;
            mA = mA.split(" ");
            mB = mB.split(" ");
            document.getElementById("result").innerHTML += "Объединение массивов :"+union(mA, mB) +"<br>";

            document.getElementById("result").innerHTML += "Пересечение массивов :"+cross(mA, mB) +"<br>";

        }
       

         //Основная функция   
         function main()
        {
            getData();   




        }   

      </script>

    </head>
    <body>
        <h1>Первая лабораторная работа</h1><br>
    <table>
      <tr><td>
         Первый массив
      </td><td>
         <input type='text' id='massA'>
       
      </td></tr>
      <tr><td> 
        Второй массив
      </td><td>
        <input type='text' id='massB'>
      </td></tr>
      <tr><td colspan='2'>
        <input type='button' value='Вычислить' onClick='main();'>
      </td></tr> 
    </table>


     Результат:<br>
     <div id='result'> </div>
        

    </body>
    </html>

Ответы 1

  • Я позволил себе немного изменить Ваш код и сделать его немного более читаемым. Так же, мне не совсем было понятно, зачем Вы сделали главную функцию, которая лишь вызывает еще одну. Поэтому я убрал промежуточную и сделал вызов по кнопке самой главной функции. Далее, принцип работы: вводим цифры/буквы в одно поле и в другое. Нажимаем кнопку "вычислить". Функции забивают эти данные в массивы и далее сверяют их. Должен признать, мне очень понравилась Ваша реализация. Как работает вывод: объединение - выводит все неповторяющиеся элементы двух массивов. Пересечение - выводит элементы, которые встречались в каждом массиве. Независимо от того, сколько раз. Эта Ваша заслуга. Пробел - равноценный участник работы. Это символ. Поэтому если Вы введете в два поля сколько угодно пробелов, а потом некие цифры, то в поле пересечение будет пробел, запятая и остальные числа. Если введете лишь в одном поле пробел, то он будет лишь в поле объединение.Как я ни старался, достичь двух запятых после моей небольшой корректировки у меня не вышло.З.Ы.: возможно при сохранении файл как html и последующем открывании у Вас отобразятся "кракозябры". Прошу меня простить за это, т.к. редактировал его в VS. Просто измените кодировку на Windows-1251 в браузере.
    answer img
    • Автор:

      aimee
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years