使用循环javascript的数字范围

range of number with loop javascript

本文关键字:数字 范围 javascript 循环      更新时间:2023-09-26

我需要一个范围从1到15和一些反向。当前我正在使用下一个脚本:

$scope.range = (min, max) ->
  input = []
  i = min
  while i < max
    input.push i
    i += 1
  input

如果输入range(1,15),它将是1 2 3 4 5 6 7 8 9 10 11 ... 15

我需要的是在range(10, 3)的情况下,应该把10 11 12 13 14 15 1 2 3

range = (min, max) ->
    input = []
    i = max
    while i > min
      input.push i
      i -= 1
    input
console.log(range( 10, 50 ));

这真的很简单,试着设置i = max,然后计数i,条件是i必须大于min,就是这样。试试上面的代码。

解决方案基于必须转到15的理解,并且顺序必须如下所示:

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
function range(min, max) {
    var startArr = arr.slice(arr.indexOf(min)),
        endArr = max < arr.length ? arr.slice(0, arr.indexOf(max) + 1) : [];
    return startArr.concat(endArr);
}

range(10, 3);
//[10,11,12,13,14,15,1,2,3]
演示