尝试取整数并将其作为
返回
字符串,整数从1到传递的数字。
试图使用循环来返回字符串但不确定如何!
我希望它看起来如何:
count(5) => 1, 2, 3, 4, 5
count(3) => 1, 2, 3
不确定从哪里开始
答案 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;
}
答案 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);