Requesting Explanation

Hello all. I’m currently working on the smallest common multiple challenge, but need some help explaining the code that is on the wiki. I understand how the code works I just don’t understand why it’s there. The code on the wiki is

function smallestCommons(arr) {
  // Sort array from greater to lowest
  // This line of code was from Adam Doyle (
  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--) {
  // 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) {
  } while (n !== newArr.length);
  return quot;
// test here

I understand the reasoning for everthing in the code until the author introduces the do. If someone has some time, I would really apprecieate a detailed explanation for the construction of this loop, so as the challenges get harder, loops of this caliber become easier to recognize and form. Best.

It’s just a do while loop.

I cleaned up your code.
You need to use triple backticks to post code to the forum.
See this post for details.

“do…while” loop does the statements inside the do {“statements”} first and only then checks the condition while (“condition”). Thus regardless if condition even meets it will execute the statements at least once. Hope that clears things out.