获取最后的“订购”号码

时间:2019-11-08 15:22:15

标签: javascript

我一直在努力定义一个函数。它必须以正数N作为参数,并返回最后一个有序数。 “有序”数字是指每个数字彼此跟随。

Example1:将1000作为参数并返回789。

Example2:以500作为参数并返回456。

1 个答案:

答案 0 :(得分:0)

这是工作代码。尽管我不只是给你答案。这是您必须练习并自己学习的方法。花时间了解我的所作所为。而且,此解决方案可以改进很多,这只是我快速完成并可以正常工作的地方。

正在执行的算法:

function calc() {
  //Get the number in the text input
  var nbr = parseInt(document.getElementById("number").value, 10);

  //Loop starting from the top
  for (var i = nbr; i > 0; i--) {
    if (isOrderedNumber(i)) {
      document.getElementById("result").innerText = i;
      return;
    }
  }
  document.getElementById("result").innerText = "None found";
}

function isOrderedNumber(number) {
  var digits = number.toString().split('');
  //Loops in the digits of the number
  for (var i = 0; i < digits.length - 1; i++) {
    //Check if the current number+1 is not equal to the next number.
    if (parseInt(digits[i]) + 1 !== parseInt(digits[i + 1])) {
      return false;
    }
  }

  return true;
}
<input id="number" type="text" />
<button onclick="calc()">Find last ordered number</button>
<br/>
<br/>
<span id="result"></span>

在这种情况下,不是使用html元素,而是通过参数接收“ nbr”,并且将返回值,而不是将值放在html元素中。询问您是否对此有任何疑问。