2011-03-15 40 views
1

我有一個任務,我需要做兩個數組(名稱和銷售)。我需要填充最多100個組件的數組。然後,我需要使用calcPay()函數來計算總工資。我無法弄清楚如何讓函數工作,它可以打印Pay列爲'未聲明'的結果表,或者當它進入該位置時它會停止工作,無論輸入了多少個NAMES和SALES進入陣列。我有這樣的身體腳本:新來的JavaScript數組,需要一些幫助

var i=0; 
var NAME = new Array(); 
var SALES = new Array(); 
do 
{ 
    NAME[i]=getName(); 
    SALES[i]=getSales(); 
    i++; 
    var again=confirm("Would you like to enter another salesperson's stats?"); 
}while(again && i<=100); 

var i=0; 
for (var i=0;i<NAME.length;i++) 
{ 
    printRow(); 
} 

這是標題:

function getName() 
{ 
    do 
    { 
     var name=prompt("What is the salesperson's full name?"); 
    }while (name==""||name==null); 
    return name; 
} 

function getSales() 
{ 
    do 
    { 
     var sales=prompt("Please enter salesperson's sales."); 
    }while(sales==""||isNaN(sales)); 
    return parseFloat(sales); 
} 

calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

function printRow() 
{ 
    document.write("<tr>"); 
    document.write("<td>"+NAME[i]+"</td>"); 
    document.write("<td>"+SALES[i]+"</td>"); 
    var payment=calcPay(SALES[i]); 
    document.write("<td>"+payment+"</td>"); 
    document.write("</tr>"); 
} 

這不是分配以任何手段的充分程度,我只是想確保我有一個處理數組的餵食和操作(我不明顯)。 感謝您的任何提示。

+0

看看控制檯出現了哪個錯誤。並且不要使用'document.write'。 – 2011-03-15 18:28:08

+5

'calcPay(銷售)'應該'功能calcPay(銷售)' – ThiefMaster 2011-03-15 18:31:46

+2

哦,我的上帝。如何錯過最簡單的事情是絕對驚人的。謝謝。 – unit 2011-03-15 18:38:04

回答

1

一般 - 你的代碼的工作,在這裏找到:

http://jsfiddle.net/osher/GhZSf/

但是 - 存在丟失的 「功能」 calcPay

之前
calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

應該

function calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

這就是全部

+1

謝謝大家,非常感謝。感覺有點愚蠢,但有時當它很小時(至少這就是我告訴我妻子的時候)很好。 – unit 2011-03-15 19:38:48

-3

名稱和銷售超出範圍此功能不會做你認爲它會的,即使它是錯誤的。
使用if語句。

function getName() 
{ 
    do 
    { 
     var name=prompt("What is the salesperson's full name?"); 
    }while (name==""||name==null); 
    return name; 
} 

function getSales() 
{ 
    do 
    { 
     var sales=prompt("Please enter salesperson's sales."); 
    }while(sales==""||isNaN(sales)); 
    return parseFloat(sales); 
} 
+1

這是錯的。在JavaScript中,變量作用域不是它們的塊,而是它們聲明的函數。 – 2011-03-15 19:34:13

+0

研究他在循環字符串輸出的代碼? – 2011-03-15 19:37:23

+0

至於範圍,我沒有引用功能範圍,我指的是循環範圍。他在do語句 – 2011-03-15 19:39:19