2013-12-11 29 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