循环javascript

时间:2015-09-23 14:59:55

标签: javascript angularjs coffeescript

我需要制作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

2 个答案:

答案 0 :(得分:1)

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

console.log(range( 10, 50 ));

多数民众赞成真的很简单,试着设定i = max然后用我必须大于min的条件计算i。就是这样。试试上面的代码。

答案 1 :(得分:0)

解决方案基于必须达到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]

DEMO