2013-12-11 31 views
-3

我想知道爲什麼我的數組無法正常工作。難道我做錯了什麼?我一直在嘗試很多不同的數組,但都沒有成功。我只是想念一些東西?嘗試讓陣列工作

費用制度: 編寫一個程序,要求用戶的旅行費用。它應該要求費用名稱,然後是金額。它應該繼續收集費用,直到用戶離開輸入空白爲止。

任何費用$ 100及以下應自動批准。 超過$ 100的任何費用都不應自動批准。

合計審批和未審批的費用。

首先顯示覈准費用。然後顯示需要人工批准的費用。

顯示總批准費用和總「需要批准」費用。

在此先感謝!

//Variables 
var expenseName; 
var expensePrice; 
var loopAgain = true; 
var approvedExpenses = new Array(); 
var approvedExpensePrice = new Array(); 
var unApprovedExpenses = new Array(); 
var unApprovedExpensePrice = new Array(); 
var approvedExpenseTotal = 0; 
var unApprovedExpenseTotal = 0; 


while(loopAgain) { 
    expenseName = prompt("What is the expense? - Type 'done' to end."); 
    expensePrice = prompt("What is the price?"); 
    expensePrice = Number(expensePrice); 
    if (expenseName === "done"){ 
    loopAgain = false; 
    } 


    for(var count = 0; count < approvedExpenses.length; count++){ 
    if (expensePrice < 100) { 
     approvedExpenseTotal = approvedExpenseTotal + expensePrice; 
     approvedExpenses[count] = expenseName; 
     approvedExpensePrice[count] = expensePrice; 
     }else { 
     unApprovedExpenseTotal = unApprovedExpenseTotal + expensePrice; 
     unApprovedExpenses[count] = expenseName; 
     unApprovedExpensePrice[count] = expensePrice; 
     } 
    } 
} 

document.write("APPROVED EXPENSES:<br>"); 

for(var count = 0; count < approvedExpenses.length; count++){ 
     document.write(approvedExpenses[count] + ": "); 
     document.write(approvedExpenses[count] + "\n"); 
    } 

document.write("EXPENSES NEEDING MANUAL APPROVAL:<br>"); 

for(var count = 0; count < unApprovedExpenses.length; count++){ 
     document.write(unApprovedExpenses[count] + ": "); 
     document.write(unApprovedExpenses[count] + "\n"); 
    } 

document.write("TOTALS:<br>"); 

document.write("Total approved expenses: $" + approvedExpenseTotal + "<br>"); 
document.write("Total expenses waiting approval: $" + unApprovedExpenseTotal + "<br>"); 
+2

你是什麼意思「不工作「?目前看起來好像你在問某人編寫你的程序 - 嘗試重寫你的問題來解決你使用數組時遇到的問題。 – Justin

+0

我的意思是,當它顯示時,沒有什麼,數組將無法正常工作。我只是想讓別人告訴我爲什麼它不能工作,所以我可以修復它。不,我不希望有人把它寫出來,因爲整個程序在你眼前是正確的,但有些東西不起作用。 – user3014364

回答

1

你的程序邏輯有點奇怪。 = b爲什麼沒有顯示的具體問題是你的數組是空的。

它們是空的,因爲你的for循環不運行。

而您的for循環無法運行,因爲for循環中的條件基於「approvedExpenses.length」,它始終爲零。

嘗試從頂部到底部(執行流程)讀取代碼並描繪變量的所有值。它應該揭示爲什麼approvedExpenses.length是零。

(也內你的循環,你設置的值,最終可能覆蓋現有的值的方式,因爲計數器總是從0開始,那裏可能存在的數據開始)

+0

哇,這有助於很多! – user3014364