Перебор for | JavaScript

Чтобы получить элемент массива, указывается его номер, начиная с нуля, в квадратных скобках

<script>
var arr = ["10", "20", "30"];
  document.write( arr[0] + '<br>' );
  document.write( arr[1] + '<br>' );
  document.write( arr[2] + '<br>' );
}
</script>

Для перебора элементов используется цикл

<script>
var arr = ["10", "20", "30"];
for (var i=0; i<arr.length; i++) {
  document.write( arr[i] + '<br>' );
}
</script>

for внутри for: нужно заменить i на другой символ

<script>
var arr = ["раз", "два", "три"],
    arr1 = ["первый", "второй", "третий"];
for (var i=0; i<arr.length; i++) {
  for (var k=0; k<arr1.length; k++) {
    document.write( arr[i] + ' ' + arr1[k] + '<br>' );
  }
}
</script>

length — это не количество элементов массива, а последний индекс + 1

<script>
var arr = ["раз", "два", "три"];
for (var i=0; i<arr.length; i++) {
  document.write( arr.length + '<br>' );
}
</script>
<script>
var arr = ["раз", "два", "три"];
document.write( arr.length + '<br>' );
</script>
<span id="length"></span>
<script>
var arr = ["раз", "два", "три", "четыре", "пять", "шесть"];
for (var i=0; i<arr.length; i++) {
  if ([i]>2) { // "четыре", "пять", "шесть", так как отсчёт начинается с нуля (i=0, это "раз"; i=1, это "два"; i=2, это "три")
    document.getElementById('length').innerHTML += [i].length;
  }
}
document.getElementById('length').innerHTML = document.getElementById('length').innerHTML.length;
</script>

Перебор document.getElementsBy или document.querySelectorAll (только по NodeList)

Задача: при вводе в поле input текст должен отображаться только в одном рядомстоящем теге mark. Если хорошо знать селекторы и псевдоклассы CSS, понадобиться всего несколько строк.

<input class="m1" type="number" placeholder="введите цифру"><mark></mark>
<input class="m2" type="number" placeholder="введите цифру"><mark></mark>
<input class="m3" type="number" placeholder="введите цифру"><mark></mark>

<script>
var input = document.querySelectorAll('input[class^="m"]');
for (var i = 0; i < input.length; i++) {
  input[i].oninput = function () {
    document.querySelector('input.' + this.className + ' + mark').innerHTML = this.value;
  }
} 
</script>

Задача: при вводе в первое и второе поле input (искл. третье) текст должен отображаться только в одном рядомстоящем теге mark.

<input class="m1" type="number" placeholder="введите цифру"><mark></mark>
<input class="m2" type="number" placeholder="введите цифру"><mark></mark>
<input class="m3" type="number" placeholder="введите цифру"><mark></mark>

<script>
var input = document.querySelectorAll('input[class^="m"]');
for (var i = 0; i <= 1; i++) {
  input[i].oninput = function () {
    document.querySelector('input.' + this.className + ' + mark').innerHTML = this.value;
  }
} 
</script>

Перечислить числа с по

С по 1 2 3
С <input id="z1" type="number" value="1"> по <input type="number" value="4"><output>1 2 3</output>

<script>
window.oninput = function() {
  document.querySelector('#z1 + input + output').innerHTML = '';
  for (var i=parseFloat(document.querySelector('#z1').value); i<parseFloat(document.querySelector('#z1 + input').value); i++) {
    document.querySelector('#z1 + input + output').innerHTML += [i] + ' ';
  }
}
</script>

Как же узнать номер i внутри функции?

<input class="m1" type="number" value="10" disabled><mark></mark>
<input class="m2" type="number" value="20" disabled><mark></mark>
<input class="m3" type="number" value="30" disabled><mark></mark>

<script>
var input = document.querySelectorAll('input[class^="m"]');
[].forEach.call(input, function(item, i) {
  document.querySelector('input[class="m' + (i + 1) + '"] + mark').innerHTML = item.value;
});
</script>
Примечание №1. При создании статьи использовался материал learn.javascript.ru.
Примечание #2. Более внимательно взглянуть на перебор элементов в JavaScript мне понадобилось при написании калькулятора минут.
в f t
наверх ↑

5 комментариев:

Анонимный
Здравствуйте, подскажите решить такую задачу.
Как вывести в консоль описание свойст помещеные в массив. вот пример:

var nav = 'navigator',
arr = ['appCodeName', 'appName', 'appVersion', 'language','platform','online'];
arr = arr.map(function(value) {return nav +'.'+ value;});
for (var i = 0; i < arr.length; i++){
console.log(arr[i]);
}
Все испробовал, не получается.
NMitra
Здравствуйте, не поняла вопроса http://3.bp.blogspot.com/-5MwRwJCaYzA/VVwTRSjtOPI/AAAAAAAAFR0/N548BeFvcEM/s00/1.png
Анонимный
извините за неточность, я хотел сказать, как вывести свойства навигатора объекта, который возвращает информацию о браузере.
чтобы не писать вот так :

console.log(navigator.appCodeName); // "Mozilla"
console.log(navigator.appName); // "Netscape"
console.log(navigator.appVersion); // "5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) ...
console.log(navigator.language); // "ru-RU"
console.log(navigator.platform); // "Win32"
console.log(navigator.online); // undefined
NMitra
http://jsfiddle.net/NMitra/3m22qb8t/

var all = '';
for(var i in navigator) {
all += i + ' = "' + navigator[i] + '";\n'
}
alert(all);
NMitra
http://jsfiddle.net/NMitra/3m22qb8t/1/

var all = '';
for(var i in navigator) {
if (i == 'appCodeName' || i == 'appName' || i == 'appVersion' || i == 'language' || i == 'platform' || i == 'online') {
all += i + ' = "' + navigator[i] + '";\n'
}
}
alert(all);