我有一些我需要帮助的代码:
var bob = [10,30,50,20,8];
// Call the function
foo(bob);
var foo = function(bob){
var max = 0,
min = 0,
average = 0,
sum = 0;
max = Math.max.apply( null, bob); // Get the max value.
min = Math.min.apply( null, bob); // Get the min value.
for( var i = 0; i < bob.length; i++ ){
sum += bob[ i ];
}
average = sum / l;
var resultArr = [];
resultArr[0] = average;
resultArr[1] = min;
resultArr[2] = max;
return resultArr;
}
document.getElementById('max').innerHTML = "Max value: "; // i want to print the max value here.
此函数返回一个包含最大值,最小值和平均值的数组。如何选择在不同的div中打印哪个值?
答案 0 :(得分:1)
你已经有了答案:
var resultArr = foo(bob);
document.getElementById('max').innerHTML = resultArr[2];
document.getElementById('min').innerHTML = resultArr[1];
// etc
答案 1 :(得分:0)
document.getElementById('max').innerHTML = resultArr[2];
或者
<div id="max">
<script>document.write(resultArr[2]);</script>
</div>
或(JQuery)
$('#max').val(resultArr[2]);
答案 2 :(得分:0)
这里有很多困惑。您有一个全局变量bob
,并且您还有bob
作为函数参数。此外,您还有一系列结果,foo
函数的本地被称为resultArr
,但您没有将其分配到任何地方调用foo
函数。
请尝试使用以下代码:
var bob = [10,30,50,20,8];
var foo = function(arrayOfNumbers){
var resultObj = {
max: 0,
min: 0,
average: 0,
sum: 0
};
resultObj.max = Math.max.apply( null, arrayOfNumbers); // Get the max value.
resultObj.min = Math.min.apply( null, arrayOfNumbers); // Get the min value.
for( var i = 0; i < arrayOfNumbers.length; i++ ){
resultObj.sum += arrayOfNumbers[ i ];
}
resultObj.average = sum / l;
return resultObj;
}
// Call the function
var theResult = foo(bob);
document.getElementById('max').innerHTML = "Max value: "+theResult.max;
以下是对代码所做更改的说明,以及原因:
我确保您的变量名称不会发生冲突。这应该可以帮助您了解每个变量的使用位置以及它们之间的相互关系。 bob
包含您的号码。您将bob
传递给foo()
函数。在foo
内,这些数字现在称为v
。这意味着您还可以拥有frank
,joe
和tom
,并且可以在所有这些上调用foo
。 arrayOfNumbers
是foo
的本地变量。
我将resultArr
从数组更改为对象。对象更有意义,因为您可以为值指定标签。因此,现在可以在.max
而不是[0]
访问最大值。我还展示了如何在 resultObj
内调用结果对象foo
,但是将其分配给 foo外的theResult
。然后,您可以引用theResult.min
,theResult.max
和theResult.average
。
我清理了一点,修复了缩进并将功能移到了顶部,以提高可读性。
我希望这可以帮助你了解这里发生了什么!