试着编写一个javascript函数,计算输入的数字

时间:2016-02-06 01:42:39

标签: javascript

尝试取整数并将其作为
返回 字符串,整数从1到传递的数字。 试图使用循环来返回字符串但不确定如何!

我希望它看起来如何:

count(5)    =>  1,  2,  3,  4,  5
count(3)    =>  1,  2,  3

不确定从哪里开始

6 个答案:

答案 0 :(得分:7)

我会用递归函数来做。保持连接数字直到达到1。

var sequence = function(num){
    if(num === 1) return '1';
    return sequence(num - 1) + ', ' + num;
}

或者只是:

var sequence = (num) => num === 1 ? '1' : sequence(num - 1) + ', ' + num;

答案 1 :(得分:1)

您可以使用for loop来迭代传入的次数。然后,您需要if-statement来处理逗号(因为您不希望在结尾处使用逗号)字符串)。

function count(num) {
  var s = "";
  for(var i = 1; i <= num; i++) {
    s += i;

    if (i < (num)) {
      s += ', ';
    }
  }
  return s;
}

JSBin

答案 2 :(得分:0)

试试这个:

function count(n) {
    var arr = [];
    for (var i = 1; i<=n; i++) {
        arr.push(i.toString());
    }
    return arr.toString();
}

答案 3 :(得分:0)

这是一个非递归的解决方案:

var sequence = num => new Array(num).fill(0).map((e, i) => i + 1).toString();

答案 4 :(得分:0)

这是一种愚蠢的方式来做到这一点

function count(i)
{
    while (i--) {
        out = (i + 1) + "," + this.out;
    }
    return (out + ((delete out) && "")).replace(",undefined", "");
}

答案 5 :(得分:0)

很可能 最荒谬的方式,定义一个迭代器:

"use strict";

function count ( i ) {
  let n = 0;
  let I = {};
  I[Symbol.iterator] = function() {
     return { next: function() { return (n > i) ? {done:true}
                                                : {done:false, value:n++} } } };
  let s = "";
  let c = "";
  for ( let i of I ) {
      s += c + i;
      c = ", "
  }
  return s;
}


let s = count(3);
console.log(s);