Массивы JavaScript «Для цикла» печатает только 1-ю итерацию - PullRequest
0 голосов
/ 20 ноября 2018

JavaScript Arrays печатает первую итерацию цикла for в маркированном списке <ul>, но не 2-ю и 3-ю итерацию.У меня нет хост-сервера;не может использовать плагин или jQuery;Я могу использовать только HTML и JavaScript.

var businesses = [

  business = [
    "Business1Name",
    "Business1Type",
    "Business1Address",
    "Business1Phone",
    "Business1Url",
    "Business1FB",
    "Business1Owner",
  ],
  business = [
    "Business2Name",
    "Business2Type",
    "Business2Address",
    "Business2Phone",
    "Business2Url",
    "Business2FB",
    "Business2Owner",
  ],
  business = [
    "Business3Name",
    "Business3Type",
    "Business3Address",
    "Business3Phone",
    "Business3Url",
    "Business3FB",
    "Business3Owner",
    "Business3Var",
  ],
];

var text = "<ul>";
for (i = 0; i < businesses.length; i++) {
  for (j = 0; j < businesses[i].length; j++) {
    text += "<li>" + businesses[i][j] + "</li>";
  }
  text += "</ul>";
  text += "<BR>";
}

document.getElementById("businessID").innerHTML = text;
<h2>JavaScript Arrays</h2>
<p id="businessID"></p>

Я новичок.Заранее спасибо!Попробуйте код здесь https://www.w3schools.com/js/tryit.asp?filename=tryjs_whereto

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

Массив должен иметь значения внутри них.Не отдельные выражения, похожие на выражения.В случае необходимости пар ключ-значение используйте объекты.

И просто для того, чтобы ответить на ваш вопрос ... Поместите text += "</ul>"; снаружи в оба цикла for.Это даст результат, который вы хотите.

Но не рекомендуется использовать отдельные массивы внутри массивов.

0 голосов
/ 20 ноября 2018

Проблема в том, что вы добавляете только один открывающий тег ul в начале, но три закрывающих тега ul внутри цикла for.Это приводит к тому, что первый список содержит теги ul, но не два других.

var text = "<ul>"; // This will create a single opening ul tag
for (i = 0; i < businesses.length; i++) {
  for (j = 0; j < businesses[i].length; j++) {
    text += "<li>" + businesses[i][j] + "</li>";
  }
  text += "</ul>"; // This will create three closing ul tags
  text += "<BR>";
}

Чтобы исправить эту проблему, добавьте тег ul внутри первого цикла for, чтобы он добавлялся к каждой итерациицикла.

var text = "";
for (i = 0; i < businesses.length; i++) {
  text += "<ul>";
  for (j = 0; j < businesses[i].length; j++) {
    text += "<li>" + businesses[i][j] + "</li>";
  }
  text += "</ul>";
  text += "<BR>";
}

Ваш массив также нестандартен (объявление переменных в квадратных скобках).Возможно, вы захотите рассмотреть использование объектов с парами ключ / значение.

0 голосов
/ 20 ноября 2018
var text = "<ul>";
for(i=0; i< businesses.length; i++){
  for(j=0; j< businesses[i].length; j++){
  text += "<li>" + businesses[i][j] + "</li>";
  }

text += "<BR>";
}
text += "</ul>";
document.getElementById("businessID").innerHTML = text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...