2016-04-05 34 views
-2

我試圖創建一個程序,它接受一個可變數量的行矩陣(也是可變長度)並將它們加在一起。因此,數組1的元素之一添加到數組2的元素之一,依此類推。我的數組產生了NAN

function add() { 
var x = document.getElementById("input").value; 
var z = x.split(" "); 
var l = z[0].length; 
var y = []; 
y.length = l; 
var i = 0; 
var j = 0; 
for(j = 0; j<l;j++){ 
for(i = 0; i < z.length; i++){ 

y[j] += z[i][j]; 
} 
} 
document.getElementById("output1").innerHTML = y; 


} 

</script> 
<input type="text" id = "input" value = "233,322,444"> 
<button onclick = "add();"> add </button> 
<div id = "output1"></div> 

這是我想要工作的代碼。數組產生NAN,NAN ..數組的直到末尾。任何幫助將非常感激。例如

另一個常見輸出是undefined233,undefined322,undefined444。這是我投入233,322,444後的結果。

Also all columns must be same length i.e z[0] is length of all sets of  numbers 
+1

某種測試輸入數據的可能是有用的,包括對你的問題的。不知道陣列中會發生什麼,很難理解你正在進行的輸出。 – Ortund

+1

請將您的輸入數據添加到輸入字段。 –

回答

0

x將是一串文字。如果您將這些文本拆分爲空白,則會得到一個包含z.length元素的子串(z)數組。

我認爲你的代碼需要像256 765 187 239這樣的輸入,並且應該在y [0]中添加2,7,1,2,在y中添加5,6,8,3和在y中添加6,5,7,9 [2];你會得到

這些問題:

  1. 你承擔,每個組具有相同的長度爲0組
  2. 在Y [J]加入你應該做一個Y [J] = 0之前;
  3. Z [i] [j]的類型是「字符串」
+0

這些是我輸入的輸入。應該parseInt(z [i] [j])有效嗎?儘管我認爲沒有必要,因爲所有的輸入都是數字。所有的列也必須是相同的長度,即z [0]是所有集合的長度 – conk

+0

是,y [j] = 0; y [j] + = parseInt(z [i] [j];將起作用 – Holger