Рубрики
Без рубрики

Петли JavaScript объяснили: для петли, пока цикла, делайте … пока цикла и много

Петли используются в JavaScript для выполнения повторных задач на основе условия. Условия обычно возвращают истинные или ложные при анализе. Цикл продолжит работу до тех пор, пока не вернется неверно. Три наиболее распространенные типы петель являются ForwhiLEDO, пока вы можете ввести js, js with или js

Автор оригинала: FreeCodeCamp Community Member.

Петли используются в JavaScript для выполнения повторных задач на основе условия. Условия обычно возвращаются правда или ложь при анализе. Цикл продолжит работу до возврата определенного состояния ложь Отказ

Три наиболее распространенные типы петель

Вы можете ввести JS для , JS пока или JS делать в то время как Чтобы получить больше информации на любом из них. Давайте посмотрим на них, а некоторые вариации, более подробно сейчас.

для петли

Синтаксис

for ([initialization]); [condition]; [final-expression]) {
   // statement
}

JavaScript для Заявление состоит из трех выражений и утверждения:

Описание

  • Инициализация – выполняется до первого выполнения на петле. Это выражение обычно используется для создания счетчиков. Переменные, созданные здесь, обладают петлей. Как только петля закончила, это исполнение, они разрушены.
  • Условие – выражение, которое проверяется до выполнения каждой итерации. Если опущено, это выражение оценивает true. Если он оценивает true, оператор петли выполняется. Если он оценивает ложь, петли останавливается.
  • Окончательное выражение – выражение, которое бежит после каждой итерации. Обычно используется для увеличения счетчика. Но это может быть использовано для уменьшения счетчика.
  • Заявление – код, который будет повторяться в петле

Любое из этих трех выражений или утверждение может быть опущено. Для циклов обычно используются для подсчета определенного количества итераций для повторения оператора. Используйте Перерыв Заявление для выхода из цикла до того, как экспрессия условия оценивает false.

Общие подводные камни

Превышение границ массива

При индексировании на массиве много раз легко превышать границы массива (EX. Попробуйте ссылку на 4-й элемент 3 элемента массива).

    // This will cause an error.
    // The bounds of the array will be exceeded.
    var arr = [ 1, 2, 3 ];
    for (var i = 0; i <= arr.length; i++) {
       console.log(arr[i]);
    }

    output:
    1
    2
    3
    undefined

Есть два способа исправить этот код. Установите условие либо I или I.Length - 1.

Примеры

Итерация через целые числа от 0 до 8

for (var i = 0; i < 9; i++) {
   console.log(i);
}

output:
0
1
2
3
4
5
6
7
8

Вырваться из петли до того, как выражение условия ложно

for (var elephant = 1; elephant < 10; elephant+=2) {
    if (elephant === 7) {
        break;
    }
    console.info('elephant is ' + elephant);
}

output:
elephant is 1
elephant is 3
elephant is 5

Для … в петле

для ... в Заявление илет на перечислимые свойства объекта, в произвольном порядке. Для каждого отчетного свойства могут быть выполнены заявления.

for (variable in object) {
...
}

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

Примеры

// Initialize object.
a = { "a": "Athens", "b": "Belgrade", "c": "Cairo" }

// Iterate over the properties.
var s = ""
for (var key in a) {
    s += key + ": " + a[key];
    s += "
"; } document.write (s); // Output: // a: Athens // b: Belgrade // c: Cairo // Initialize the array. var arr = new Array("zero", "one", "two"); // Add a few expando properties to the array. arr["orange"] = "fruit"; arr["carrot"] = "vegetable"; // Iterate over the properties and elements. var s = ""; for (var key in arr) { s += key + ": " + arr[key]; s += "
"; } document.write (s); // Output: // 0: zero // 1: one // 2: two // orange: fruit // carrot: vegetable // Efficient way of getting an object's keys using an expression within the for-in loop's conditions var myObj = {a: 1, b: 2, c:3}, myKeys = [], i=0; for (myKeys[i++] in myObj); document.write(myKeys); //Output: // a // b // c

для … цикла

для ... из Заявление создает цикл, итерацию по поводу передовых объектов (включая массив, карту, набор, аргументы объекта и т. Д.), вызывая индивидуальный итерационный крючок с операторами для выполнения значения каждого отчетного свойства.

    for (variable of object) {
        statement
    }

Описание Переменная на каждой итерации. Значение другого свойства присваивается для переменной объекта .Object, перечислимые свойства которых итерации.

Примеры

Множество

    let arr = [ "fred", "tom", "bob" ];

    for (let i of arr) {
        console.log(i);
    }

    // Output:
    // fred
    // tom
    // bob

карта

    var m = new Map();
    m.set(1, "black");
    m.set(2, "red");

    for (var n of m) {
        console.log(n);
    }

    // Output:
    // 1,black
    // 2,red

Набор

    var s = new Set();
    s.add(1);
    s.add("red");

    for (var n of s) {
        console.log(n);
    }

    // Output:
    // 1
    // red

Аргументы объекта

    // your browser must support for..of loop
    // and let-scoped variables in for loops

    function displayArgumentsObject() {
        for (let n of arguments) {
            console.log(n);
        }
    }


    displayArgumentsObject(1, 'red');

    // Output:
    // 1
    // red

во время петли

Цикл в то время как начинается, оценивая состояние. Если условие верно, оператор (ы) выполнен/выполняется. Если условие неверно, оператор (ы) не выполняется. После этого, пока концы петли.

Вот синтаксис В то время как цикла:

Синтаксис:

while (condition)

{

  statement(s);

}

Операторы (ы): Заявление, которое выполняется до тех пор, пока состояние оценивается к истинному.

Состояние: Здесь условие – это логическое выражение, которое оценивается до каждого прохода через петлю. Если это условие оценивает true, операторы (ы) выполняются. Когда условие оценивает значение false, выполнение продолжается с оператором после цикла While.

Пример:

    var i = 1;
    while (i < 10) 
    {
      console.log(i);
       i++; // i=i+1 same thing
    }

    Output:
    1 
    2 
    3 
    4
    5
    6
    7
    8
    9

Как повторить с JavaScript во время петлей

В то время как петли будут работать до тех пор, пока состояние внутри () верно. Пример:

while(condition){
code...
}

Подсказка 1:

Используйте переменную итератора, такую как I в вашем состоянии

var i = 0;
while(i <= 4){
}

Спойлер предупреждает решение впереди!

Решение :

// Setup
var myArray = [];

// Only change code below this line.
var i = 0;
while (i <= 4){
    myArray.push(i);
    i++;
}

Делать … пока цикла

делать ... пока петля тесно связана с в то время как петля. В цикле DO пока состояние проверяется в конце цикла.

Вот синтаксис для делать ... пока петля:

Синтаксис:

 do {

   *Statement(s);*

} while (*condition*);

Операторы (ы): Заявление, которое выполняется по крайней мере, один раз До того, как условие или булевое выражение оценивается и заново выполняется каждый раз, когда условие оценивается к True.

Состояние: Здесь условие – это Логическое выражение Отказ Если булевое выражение оценивает значение true, утверждение выполняется снова. Когда логическое выражение оценивает ложь, петли заканчиваются.

Пример:

var i = 0;
do {
  i = i + 1;
  console.log(i);
} while (i < 5);

Output:
1
2
3
4
5

Как повторить с JavaScript сделать … пока петли

  • Делать ... пока петли гарантируют, что код выполнен как минимум один раз, а после выполнения, если состояние внутри в то время как () это правда , он продолжается с циклом, в противном случае он останавливается.

Решение:

var myArray = [];
var i = 10;

do {
  myArray.push(i);
  i++;
} while(i <= 10);