Почему счетчик присутствует после каждого найденного значения?

У меня есть функция, которая должна распечатать несколько вещей: массив, его length, тип каждых данных в массиве, количество строк в массиве и если массив содержит только строки.

Мне удалось сделать function, который делает именно это.

Мой единственный вопрос/проблема заключается в том, что счетчик строк tip присутствует после каждого найденного значения, соответствующего моим требованиям, то есть после каждой строки.

Есть ли способ избежать этого? И есть ли другой способ решить этот тип упражнений?

var sir = ["water", 3, true, false, "dog"]

function verificare() {
  var lungimesir = sir.length;
  document.write("this is the length of the array " + lungimesir + "<br>");
  var tip = 0;
  for (var i = 0; i < sir.length; i++) {
    var value = typeof(sir[i]);
    document.write(" " + value + "<br>");
    if (value === "string") {
      tip = tip + 1;
      document.write(" " + tip + "<br>");
    }

  }
  document.write("the number of strings found is " + tip + "<br>");
  if (tip === lungimesir) {
    document.write("the array contains only strings " + "<br>")
  } else {
    document.write("the array is mixed " + "<br>")
  }


}
verificare(sir);

Непонятно, что вы имеете в виду. Если вы закомментируете document.write(" " + tip + "<br>"); то вы его не увидите

mplungjan 09.07.2019 13:57

если я запускаю код после каждого строкового значения, счетчик tip присутствует. это была моя проблема. Я отредактировал его, как вы сказали, и теперь он работает так, как я хотел. Спасибо за помощь!

moonhowl 09.07.2019 14:02

Не стесняйтесь удалять этот очень конкретный вопрос

mplungjan 09.07.2019 14:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
44
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Удалить эту строку:

document.write(" " + tip + "<br>");
Ответ принят как подходящий

Первый намек на то, что вы печатаете только через звонки document.write. Поскольку это происходит один раз для каждого элемента, проблема, вероятно, связана с одним вызовом document.write. И есть document.write, который печатает tip. Закомментируйте эту строку, и проблема будет решена:

var sir = ["water", 3, true, false, "dog"]

function verificare() {
  var lungimesir = sir.length;
  document.write("this is the length of the array " + lungimesir + "<br>");
  var tip = 0;
  for (var i = 0; i < sir.length; i++) {
    var value = typeof(sir[i]);
    document.write(" " + value + "<br>");
    if (value === "string") {
      tip = tip + 1;
      //document.write(" " + tip + "<br>");
    }

  }
  document.write("the number of strings found is " + tip + "<br>");
  if (tip === lungimesir) {
    document.write("the array contains only strings " + "<br>")
  } else {
    document.write("the array is mixed " + "<br>")
  }


}
verificare(sir);

классно! это работало таким образом. спасибо и вам за объяснение!

moonhowl 09.07.2019 19:33

Другие вопросы по теме