Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中获取值_Javascript_Arrays_Function - Fatal编程技术网

Javascript 从数组中获取值

Javascript 从数组中获取值,javascript,arrays,function,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

我有一些代码需要帮助:

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.
var-bob=[10,30,50,20,8];
//调用函数
傅(鲍勃),;
var foo=函数(bob){
var max=0,
最小值=0,
平均值=0,
总和=0;
max=Math.max.apply(null,bob);//获取最大值。
min=Math.min.apply(null,bob);//获取最小值。
对于(变量i=0;i

此函数返回一个包含最大值、最小值和平均值的数组。如何选择在不同的div中打印哪个值?

您已经有了答案:

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


你在这里有很多困惑。有一个全局变量
bob
,还有一个函数参数
bob
。此外,您还有一个结果数组,该数组位于
foo
函数的本地,称为
resultar
,但在调用
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;
var-bob=[10,30,50,20,8];
var foo=函数(ArrayOfNumber){
var resultObj={
最高:0,
分:0,,
平均:0,
总数:0
};
resultObj.max=Math.max.apply(null,ArrayOfNumber);//获取最大值。
resultObj.min=Math.min.apply(null,ArrayOfNumber);//获取最小值。
对于(变量i=0;i
以下是我对您的代码所做更改的描述,以及原因:

  • 我确保变量的名称不冲突。这将帮助您了解每个变量的使用位置以及它们之间的关系
    bob
    包含您的号码。将
    bob
    传递给
    foo()
    函数。在
    foo
    中,数字现在被称为
    v
    。这意味着您还可以拥有
    frank
    joe
    tom
    ,并且您可以对所有这些人调用
    foo
    arrayOfNumbers
    foo
    的局部变量

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

  • 我做了一点清理,修复了缩进并将函数移到顶部,以增加可读性


  • 我希望这有助于你了解这里发生了什么

    我试过这个。但是Firebug给了我这个错误:Resultar不是定义文档。getElementById('max')。innerHTML=“max value:”+Resultar[2]@法拉利,你必须做
    resultar=foo(鲍勃)first@Ferrariresultar是一个保存函数foo结果的变量。您首先必须初始化该变量:var resultar=foo([10,30,50,20,8]);或者您需要处理的任何数组
    
    <div id="max">
        <script>document.write(resultArr[2]);</script>
    </div>
    
    $('#max').val(resultArr[2]);
    
    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;