Что происходит в этом для цикла? - PullRequest
2 голосов
/ 01 июня 2019

Этот цикл взят из решения для freeCodeCamp challenge .Я не понимаю, как это работает - что делает уменьшение i?Я совершенно невежественен.Любое понимание помощи будет с благодарностью.

for (var i = arr[0]; i >= arr[1]; i--) {
  newArr.push(i);
}

Вот полное решение для цикла for:

function smallestCommons(arr) {
  // Sort array from greater to lowest
  // This line of code was from Adam Doyle (http://github.com/Adoyle2014)
  arr.sort(function(a, b) {
    return b - a;
  });

  // Create new array and add all values from greater to smaller from the
  // original array.
  var newArr = [];
  for (var i = arr[0]; i >= arr[1]; i--) {
    newArr.push(i);
  }

  // Variables needed declared outside the loops.
  var quot = 0;
  var loop = 1;
  var n;

  // Run code while n is not the same as the array length.
  do {
    quot = newArr[0] * loop * newArr[1];
    for (n = 2; n < newArr.length; n++) {
      if (quot % newArr[n] !== 0) {
        break;
      }
    }

    loop++;
  } while (n !== newArr.length);

  return quot;
}

// test here
smallestCommons([1,5]);

1 Ответ

3 голосов
/ 01 июня 2019

Я не понимаю, как это работает - что я делаю при понижении?

Здесь вы передаете два значения вашей функции в виде массива [1,5]

smallestCommons([1,5]);

Внутри function smallestCommons первое, что мы делаем, это сортируем массив в descending order

arr.sort(function(a, b) {
    return b - a;
});                       // arr = [5,1]

Теперь мы создаем новый массив

let newArr = [];
  for (let i = arr[0]; i >= arr[1]; i--) {
    newArr.push(i);
}
  • Здесь arr[0] = 5 и arr[1] = 1
  • Итак, начальное значение i 5, а ваше состояние i >= arr[1]
  • Мы продолжаем уменьшать значение i, пока оно не станет меньше arr[1] which is 1
  • Так что newArray будет иметь значение [5, 4, 3, 2, 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...