1

我不完全确定如何表达我在这里要问的内容,但我有一个存在两个数组的任务。一个数组包含由汽车组成的字符串。第二个数组包含那辆车的价格。该程序是通过第一个数组运行 for 循环,识别包含该特定品牌的值,然后将价格添加到第二个数组中。

这就是我所拥有的:

<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 循环中一起,有人知道吗?提前感谢您对此问题的任何帮助或指导

4

1 回答 1

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,然后可以用+=重新定义totaltotal + price[i]。它是 的简写total = total + price[i]。我还在for 循环var之前包含了i,因为它应该是本地的,而不是全局的;而且,您不需要那么多分号:例如在括号之后}(只要它不是您定义的对象)。还有一件事是你的 for 循环中有一个 return 语句,这意味着它只会在结束函数之前循环一个值。return 语句应该在 for 循环之后。

于 2013-09-23T06:08:13.343 回答