2015-04-13 63 views
0

我在使用JavaScript編寫的代碼中遇到了麻煩,該代碼應該返回一個表格,其中包含月份列和列利潤列。一切都很好,除非我看起來沒有任何價值。代碼如下:使用Javascript:數組之前未定義

"use strict"; 

var i, mois, ventes, a, b; 
mois=["Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"]; 
ventes=[120,500,350,400,600,890,450,100,250,300,650,450]; 

function Fventes(a, b) { 
    for (i=0; i<12; i++) { 
    document.write('<tr><td>', a[i],'</td><td>',b[i],'</td></tr>'); 
    } 
} 
document.write('<table><thead><td>Tableau des ventes</td></thead><tbody>'); 
document.write(Fventes(mois, ventes)); 
document.write('</tbody></table>'); 

未定義的值出現在第1個文檔寫入之前,就好像我正在調用空變量的值一樣。

+1

儘量避免'document.write'並考慮使用_DOM Methods_來代替;即'parent_node.appendChild(table_root_node)' –

回答

3

這是因爲你是document.writing函數,由於Javascript的規則,它隱式返回undefined。該功能的內部是你真正想要的document.writes。嘗試:

"use strict"; 

var i, mois, ventes, a, b; 
mois=["Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"]; 
ventes=[120,500,350,400,600,890,450,100,250,300,650,450]; 

function Fventes(a, b) { 
    for (i=0; i<12; i++) { 
     document.write('<tr><td>', a[i],'</td><td>',b[i],'</td></tr>'); 
    } 
} 
document.write('<table><thead><td>Tableau des ventes</td></thead><tbody>'); 
Fventes(mois, ventes); 
document.write('</tbody></table>'); 

小提琴:https://jsfiddle.net/zsh18999/

1

你應該寫:

document.write('<table><thead><td>Tableau des ventes</td></thead><tbody>'); 
Fventes(mois, ventes); 
document.write('</tbody></table>'); 
1

調用document.write(Fventes(mois, ventes));實際上寫"undefined"因爲調用Fventes(mois, ventes)回報undefined。你應該寫:

"use strict"; 

var i, mois, ventes, a, b; 
mois=["Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"]; 
ventes=[120,500,350,400,600,890,450,100,250,300,650,450]; 

function Fventes(a, b) { 
    for (i=0; i<12; i++) { 
    document.write('<tr><td>', a[i],'</td><td>',b[i],'</td></tr>'); 
    } 
} 
document.write('<table><thead><td>Tableau des ventes</td></thead><tbody>'); 
Fventes(mois, ventes); 
document.write('</tbody></table>');