当前位置: 首页 > 知识库问答 >
问题:

在JavaScript中调用另一个函数内部的函数

段干庆
2023-03-14

我定义了一个名为marger的函数来查找两个参数(num1、num2)之间的较大数。现在,我想在另一个名为“最大”的函数中使用这个函数,这个函数获得一个数组并返回该数组的最大个数,但我被卡住了。有人能帮我吗?下面是我的代码:

function larger(num1, num2){
  var largerNumber = 0;
  if (num1 > num2){
   largerNumber = num1;
  } else {
      largerNumber = num2;
  }
return largerNumber;
}

function largest(array){
 for (var i = 0; i < array.length ; i++){
  for (var j = 0; j < array.length ; j++){
   if (array[i] != array[j]){
     //I don`t know if I am doing it right
   }
  }
 }
}

共有3个答案

韦智刚
2023-03-14

最简单的解决方案是使用最大tmp值。这样,您只需要对所有数组执行一次迭代。

function largest(array){
    var max = array[0];
    for (var i = 1; i < array.length ; i++) { // So we start at 1
        max = larger(max, array[i]);
        // Or use this : if(array[i] > max) max = array[i];
    }

正如ORIOL所说

我没有检查数组的长度,上面的解决方案只有在array.length>0时才起作用。

否则,您必须使用类似于以下内容来检查它,而不是var max=array[0];

function largest(array){
    var max = -Infinity; 
    for (var i = 0; i < array.length ; i++) { Start at 0
        max = larger(max, array[i]);
}    

这真的取决于你的IHM的人体工程学。

弓华茂
2023-03-14

只需使用math.max:

null

function largest(array) {
  return Math.max.apply(Math, array);
}
console.log(largest([5,-2,7,6]));
龙令
2023-03-14

遍历数组一次,只保留最大的:

null

function larger(num1, num2){
  var largerNumber = 0;
  if (num1 > num2){
   largerNumber = num1;
  } else {
      largerNumber = num2;
  }
return largerNumber;
}

function largest(array){
 let largestNumber = array[0];
 for (var i = 1; i < array.length ; i++){
  largestNumber = larger(largestNumber, array[i]);
 }
 return largestNumber;
}

var test = [1, 53, 352, 22, 351, 333, 123, 5, 25, 96];
console.log(largest(test));
 类似资料:
  • 问题内容: 如果我有这个: 我之前已定义,因此效果很好。 我的问题是在第6行中调用。我试图用相同的定义在第一个函数之外进行定义,但是即使调用,它也始终相同。 我希望每次调用第一个函数然后再调用第二个函数时,都具有一个不同的。 我能做到这一点,而不界定外? 问题答案: 是的,您应该考虑在一个类中定义您的函数,并使word成为成员。这比较干净 创建类后,您必须将其实例化为对象并访问成员函数。 另一种方

  • 在过去的几个小时里,我一直在调试、配置和命名它,我似乎不明白为什么会发生这种情况。 我正在尝试调用一个 lambda 函数,该函数只是从 ec2 中检索基本信息。当我在aws控制台中测试此lambda函数时,它似乎工作正常。但是,使用以下代码在另一个lambda中调用它; 它只是超时了。没有任何反应…两个Lambda都连接到VPC和所有子网 我认为是我的新VPC导致了这个问题。我的VPC包括: 1

  • 我不明白为什么下面的代码会打印两次。我以为应该是个人和学生。当通过“a”对象调用printPerson()内部的getInfo()时,为什么要调用Person类内部的一个,为什么不调用Student类中的一个?提前谢谢。

  • 问题内容: 对于测试,我使用jest和react-test-renderer。测试应该很简单,但是我很难找到合适的例子。我试图做这样的事情(通常我将功能保存在单独的文件中): utils.js utils.test.js 片段 const childFunction = jest.fn(); 绝对行不通。调用时,parentFunction的主体仅关心其自身的作用域。但是,如果我导入childFu

  • 问题内容: 我想调用一个在second.js文件的first.js文件中定义的函数。这两个文件都在HTML文件中定义,例如: 我想打电话给在定义中。根据我的搜索结果,答案是首先定义是否可以,但是根据我的测试,我没有找到任何方法。 这是我的代码: 问题答案: 除非在同一文件中定义了该函数,或者在尝试调用该函数之前已加载了该函数,否则无法调用该函数。 除非函数的范围与尝试调用该函数的范围相同或更大,否

  • 问题内容: 我可以在python3.2的全局范围内调用嵌套在另一个函数内的函数吗? 这是从外部func1()调用func2()的一种方法吗? 问题答案: 否,除非您返回该函数: 甚至