我不完全确定如何说出我在这里要求的内容,但我有一个分配,其中存在两个数组。一个数组包含字符串,这些字符串是汽车的品牌。第二个数组包含该车的价格。该程序将在第一个数组中运行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循环中加在一起,任何人都有任何想法?提前感谢您对此问题的任何帮助或指导
答案 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循环之后。