Как получить определенное значение из цикла - PullRequest
0 голосов
/ 15 мая 2018

Я хочу получить конкретное значение из цикла, как в виде массива. С примером ниже

var text = "";

for(var i = 0; i < 10; i++) {
    if (i === 3) continue;
    text += "The number is " + i + "<br>";
}

document.getElementById("demo").innerHTML = text;

Результат:

The number is 0
The number is 1
The number is 2
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9

Но мне нужно получить конкретное число из цикла, например:

text += "The 5th number is " + i[5] + "<br>";

Результат i [5] не определен. Как я могу сделать это правильно?

Ответы [ 5 ]

0 голосов
/ 15 мая 2018

Вы пытаетесь получить индекс из переменной.Это не массив.Таким образом, вы можете получить конкретное число, просто используя индекс, как в примере

var text = "";
var i;
   for (i = 0; i < 10; i++) {
 if (i === 3) { 
 text = "The "+i+"th number is " + i + "<br>";
 break; }
 
}
document.getElementById("demo").innerHTML = text;
<div id="demo"></div>
0 голосов
/ 15 мая 2018

text - это простой string, а не массив, поэтому вы не можете получить к нему доступ с помощью array[index]. Вам лучше использовать массив или

вы можете просто split свою строку с помощью <br>, это даст вам массив. Теперь вы сможете использовать arr[index] на нем

как

var text = "";
var i;
for (i = 0; i < 10; i++) {
  if (i === 3) { continue; }
  text += "The number is " + i + "<br>";
};

console.log("5th number is "+text.split("<br>")[4])
0 голосов
/ 15 мая 2018

Создайте массив элементов, которые необходимо перебрать, и затем вы сможете получить доступ к индексу с помощью array[index], как вы упомянули.

var a = [1, 2, 3];
for(var b in a) {
    console.log(b);
    console.log(a[2]);
}
0 голосов
/ 15 мая 2018

Если вы хотите отобразить номер в списке, вы можете добавить новую переменную с именем number, например.Эта переменная будет увеличиваться всякий раз, когда она используется в for-loop для печати чего-либо, например:

var text = "";
var i;
var number = 1;
for (i = 0; i < 10; i++) {
  if (i === 3) { continue; }
  text += "The"+ (number++) +"th number is " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;

Это будет печатать для каждой строки: The xth number is i

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

0 голосов
/ 15 мая 2018

Результат i [5] не определен.

Это потому, что переменная i является числовой, а не array.

Но мне нужно получить конкретное число из цикла

Вы можете сделать это, создав массив.

var text = "";
var i;
var indexes = [];
for (i = 0; i < 10; i++) {
  indexes.push(i)
  if (i === 3) { continue; }
  text += "The number is " + indexes[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
<div id="demo"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...