繁体   English   中英

从数组获取值

[英]Get the value from an Array

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

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

您已经有了答案:

var resultArr = foo(bob);
document.getElementById('max').innerHTML = resultArr[2];
document.getElementById('min').innerHTML = resultArr[1];
// etc
document.getElementById('max').innerHTML = resultArr[2];

要么

<div id="max">
    <script>document.write(resultArr[2]);</script>
</div>

或(jQuery)

$('#max').val(resultArr[2]);

您在这里有些困惑。 您有一个全局变量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 ,并且可以对所有这些调用foo arrayOfNumbersfoo的局部变量。

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

  3. 我整理了一下,修复了缩进并将函数移到顶部,以提高可读性。

希望这可以帮助您了解发生了什么!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM