2014-09-25 144 views
-2

对不起,这是一个愚蠢的问题,但我尝试列出从1到一个限制的数字序列,它们应该用逗号分隔。我有个问题。我不知道如何停止逗号。我应该有1,2,3,但我有,1,2,3。你可以帮我吗?这是我的代码。逗号分隔字符串javascript

function getNumberSequence(number) { 
var result = "" 
if(number <= 0){ 
    return result 
    } 
    else{ 
     if(number == 1){ 
      result = result + 1 
     } else { 
     for(i = 1; i <= number; i++){ 
      result = result + ',' + i; 
     } 
     } 
    } 
    return result 
} 

感谢所有

+0

那么当你与“数量”是3日开始的,那是什么被追加到“结果”字符串的第一件事? – Pointy 2014-09-25 13:00:05

+0

不明白你的问题 – pp94 2014-09-25 13:01:09

+0

@积极呼吸伴侣,没有压力 – artm 2014-09-25 13:01:52

回答

1

您可以简单地添加一个标志(在本例中的“第一”),并检查,如果这是你的第一次迭代 - 如果是这样,不加逗号,但将其设置为假的... ...在这里看到:http://jsfiddle.net/fdfxc5zq/

var first = true; //have a flag that tells you if this is your first iteration - don't add a comma the first time around 
     for (i = 0; i <= number; i++) { 
      if (first) { 
       first = false; 
      } else { 
       result += ", "; 
      } 
      result += i; 
     } 
+0

好吧我改变i = 1而不是i = 0所以现在我想要我想要的。基本上使用该标志减少了分割字符串的可能性。谢谢Birgit – pp94 2014-09-25 13:25:07

0

使用你的代码,只需为1的初始值声明的结果,并与我开始for循环= 2。解决了。 (而在编号为1的情况下,只返回结果)

0

一个班轮为您:

return Object.keys(Array.apply(null,new Array(number))).map(function(n) {return +n+1;}).join(","); 

基本上,产生长度number的阵列,“适用”它(基本上结束了给undefined值分配给每个索引),然后使用Object.keys获取数组的索引,递增所有项目,然后使用逗号将整个项目连接起来。

0

两个简单的方法:

1)只要每个数字后加上一个逗号,并返回长度-1的子甩掉最后一个逗号

if (i === 0) return ""; //to avoid substring() issues on empty strings 

var result = ""; 
for (i = 0; i <= number; i++) { 
    result = i + ","; 
} 

return result.substr(0, result.length-1); 

2)使用阵列,并加入

var result = []; 
for (i = 0; i <= number; i++) { 
    result.push(i) 
} 
return result.join(); //default join separator is the comma 
0
YourCommaSeparatedString.split(',');