2013-09-23 69 views
1

我不完全確定如何說出我在這裏提出的問題,但我有兩個數組存在的任務。一個數組包含汽車製造的字符串。第二個數組包含該車的價格。該程序將在第一個數組中運行for循環,標識包含該特定make的值,然後在第二個數組中添加價格。從一個數組中取值並從單獨的數組中獲取不同的值。 JavaScript

這是我有:

<html> 
<script> 

make = new Array(); 

make[0]='honda'; 
make[1]='toyota'; 
make[2]='pontiac'; 
make[3]='honda'; 

price = new Array(); 

price[0]=35000; 
price[1]=35000; 
price[2]=40000; 
price[3]=45000; 


function totalByColor(parameter1){ 
total=0; 
for(i=0;i<make.length;i++){ 
    if(make[i]=='honda'){ 
     for(b=0;b<price.length;b++){ 
      make[i]=price[b]; //This is where I need help! 
      total = total + price[b]; 
     }; 
    } else { 
    }; 
    return total; 
}; 
return total; 
}; 
</script> 
<input type='button' value='test' onclick="alert('Return = '+totalByColor('honda'))"> 
</html> 

所以我需要設置程序直到找出化妝值[0]是有關價格[0],使[3]是相關的價格[3],所以價格[0]和價格[3]可以在第二個for循環中加在一起,任何人有任何想法?在此先感謝您提供有關此問題的任何幫助或指導

+2

無論你在這裏做什麼,都可以使用javascript對象。 Array不是爲了這個。 –

+0

在現實世界@SrinivasReddyThatiparthy,但OP確實說它是作爲一項任務給出的。 – bozdoz

+0

@SrinivasReddyThatiparthy這是我的一半在尋找這個問題的信息的戰鬥 –

回答

0

如果索引相同,則不需要另一個for循環;只需用VAR i

var total = 0; 
for (var i = 0, len = make.length; i < len; i++) { 
    if (make[i] === 'honda') { 
     total += price[i]; 
    } 
} 
return total; 

total應該是一個局部變量,並首先被定義爲0,那麼你可以使用+=重新定義total作爲total + price[i]。這是total = total + price[i]的簡寫。我還在for循環中包含var之前的i,因爲它應該是本地的,而不是全局的;而且,你不需要這麼多的分號:括號後面例如}(只要它不是你定義的對象)。還有一件事是你在for循環中有一個return語句,這意味着它只會在結束函數前循環一個值。 return語句應該在for循環之後。

+0

這正是我一直在尋找和衷心感謝您提供的幫助! –

+0

你應該接受它作爲答案@RyanBrown – bozdoz