从一个数组中获取值并从单独的数组中获取不同的值。 JavaScript的

时间:2013-09-23 06:03:53

标签: javascript arrays

我不完全确定如何说出我在这里要求的内容,但我有一个分配,其中存在两个数组。一个数组包含字符串,这些字符串是汽车的品牌。第二个数组包含该车的价格。该程序将在第一个数组中运行for循环,识别包含该特定make的值,然后在第二个数组中添加价格。

这就是我所拥有的:

<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>

所以我需要设置程序以确定make [0]中的值与price [0]相关并且make [3]与price [3]相关,因此price [0]和price [3]可以在第二个for循环中加在一起,任何人都有任何想法?提前感谢您对此问题的任何帮助或指导

1 个答案:

答案 0 :(得分: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循环之后。