2013-07-10 135 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]);