从数组中获取值

时间:2011-01-22 16:22:18

标签: javascript arrays function

我有一些我需要帮助的代码:

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中打印哪个值?

3 个答案:

答案 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;

以下是对代码所做更改的说明,以及原因:

  1. 我确保您的变量名称不会发生冲突。这应该可以帮助您了解每个变量的使用位置以及它们之间的相互关系。 bob包含您的号码。您将bob传递给foo()函数。在foo内,这些数字现在称为v。这意味着您还可以拥有frankjoetom,并且可以在所有这些上调用fooarrayOfNumbersfoo的本地变量。

  2. 我将resultArr从数组更改为对象。对象更有意义,因为您可以为值指定标签。因此,现在可以在.max而不是[0]访问最大值。我还展示了如何在 resultObj内调用结果对象foo ,但是将其分配给 foo外的theResult 。然后,您可以引用theResult.mintheResult.maxtheResult.average

  3. 我清理了一点,修复了缩进并将功能移到了顶部,以提高可读性。

  4. 我希望这可以帮助你了解这里发生了什么!