2013-07-10 130 views
0

我对于stackoverflow比较新,并且已经搜索了一些时间来回答我的问题。我发现像这样的一些链接How to split a comma-separated string? 但仍然不能完全理解我在做什么我的短小的JavaScript程序错了。Javascript以逗号分隔

无论如何它在这里。帮助将不胜感激。

我基本上试图创建一个提示,要求用户输入3个数字,用逗号分隔,然后将该字符串更改为数组,以便以后可以乘以数值。到目前为止,当我尝试console.log时,我的结果如下所示:1,2 它不打印出第三个数字(用户输入的第三个数字)。

var entry = prompt("Triangle side lengths in cm (number,number,number):") 
if(entry!=null && entry!="") { 
entryArray = entry.split(","); 


for (i=0; i<3; i++) 
{ 
entryArray[i] = entry.charAt([i]); 
} 
} 
console.log(entryArray[0] + entryArray[1] + entryArray[2]); 
+0

这是为什么for循环,甚至是必需?拆分本身会给你一个1 2和3的数组。 – mohkhan

回答

0

尝试

for (i=0; i<3; i++) 
{ 
    entryArray.push(parseInt(entryArray[i]); 
} 
+0

是的,你的建议看起来很完美。非常感谢你。我从来没有想过使用parseInt – mike

+1

这是错误的。 entry.charAt(1)是“,”。不是吗? – mohkhan

+0

我的坏,错过了它。好吧! :) –

1

斯普利特已经创建了一个阵列。所以,如果你输入1,2,3,你在分割时会得到这样的数组:["1", "2", "3"]。在您的for循环中,您将从原始输入中获​​取字符,而不是数组。为了添加它们,您需要将输入更改为数字,因为它们被视为字符串。所以,你的for循环应该是这样的:

for (i=0; i<3; i++) 
{ 
    entryArray[i] = parseFloat(entryArray[i]); 
} 

覆盖与数字的字符串。

0

试试这个代码,我删除了你的循环将其覆盖的阵列。

var entry = prompt("Triangle side lengths in cm (number,number,number):"); 
if(entry!=null && entry!="") { 
    entryArray = entry.split(","); 
    console.log(entryArray[0] + entryArray[1] + entryArray[2]); 
    } 
0

可以删除for.like的身体这样的:

var entry = prompt("Triangle side lengths in cm (number,number,number):") 
console.log(entry); 
if(entry!=null && entry!="") { 
entryArray = entry.split(","); 
console.log(entryArray); 
} 

console.log(entryArray[0] + entryArray[1] + entryArray[2]);