对不起这个菜鸟问题,但我无法让我的功能发挥作用。对我而言,它看起来非常类似于网络上的解决方案,但不知何故它不起作用,我不知道问题出在哪里。将不胜感激任何帮助
function findvalue() {
var i = 0;
var array = [];
var min = array[0];
for (i = 0; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
}
}
return min;
}
console.log(findvalue(11, 12, 13, 21, 22, 23, 97, 98, 99))
;
答案 0 :(得分:3)
您可以使用arguments
,这是一个类似于函数对象的数组。
function findvalue() {
var i = 0,
min = arguments[0];
for (i = 1; i < arguments.length; i++) {
if (min > arguments[i]) {
min = arguments[i];
}
}
return min;
}
console.log(findvalue(11, 12, 13, 21, 22, 23, 97, 98, 99));
较短的方法可能是使用rest parameters ...
和spread syntax ...
作为Math.min
的值。
function findvalue(...args) {
return Math.min(...args)
}
console.log(findvalue(11, 12, 13, 21, 22, 23, 97, 98, 99));
答案 1 :(得分:2)
您的功能定义不正确,以及您如何调用您的功能。
您希望迭代一个数组,但是您使用一堆数字作为参数调用您的函数。你需要1个参数(参数)来调用你的函数,它应该是一个数组。
你必须改为这样称呼它:
findvalue([11, 12, 13, 21, 22, 23, 97, 98, 99])
您的功能定义必须是:
function findvalue(array) {
var i = 0;
var min = array[0];
for (i = 1; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
}
}
return min;
}
如评论中所述,您可以修改函数定义以保留调用函数的初始方法。这是通过使用rest parameters
完成的MDN文档将休息参数描述为:
其余参数语法允许我们表示不确定的数字 作为数组的参数。
按照您的方式调用该函数:findvalue(11, 12, 13, 21, 22, 23, 97, 98, 99)
您的功能定义是:
function findvalue(...array) {
var i = 0;
var min = array[0];
for (i = 1; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
}
}
return min;
}
答案 2 :(得分:1)
您可以使用Math.min
function findMin() {
// arguments is an Array-like object corresponding to the arguments passed to a function.
return Math.min.apply(Math, arguments)
}
console.log(findMin(2,4,1,0,9,-2));
答案 3 :(得分:0)
函数中缺少的是数组必须是函数的参数。
在你写的时候,函数总是试图在空数组中找到最小值。
目前完全忽略了调用函数时传递的示例值。
因此,不是在函数体中编写var array = []
,而是有几种可能性:
第一种可能性:将数组作为参数:将您的函数声明为function(array)
并将您的调用更改为实际传递一组值findValues([11, 12, 13, 21 ...])
,并删除正文中的var array = []
你的功能。
第二种可能性(我最喜欢的):只需将var array = []
替换为var array = [...arguments]
此处arguments
对象的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
(另请注意,let
现在是最佳做法而不是var
)
使用arguments
答案 4 :(得分:0)
试试这个
function findvalue() {
var order = Array.from(arguments).sort(function(a,b){ return a - b; });
var min = order[0];
//var max = order[order.length-1];
return min;
}
// MIN value
console.log(findvalue(23, 97, 98, 99, 11, 12, 13, 21, 22));
答案 5 :(得分:0)
我相信箭头功能会简化您的工作。
//Variable diclaration
var numbers = [11, 12, 13, 21, 22, 23, 97, 98, 99];
//Arrow Function to find Min Number
var minfinder = numbers.reduce((a, b) => Math.min(a, b));
//Consloe Output
console.log("Min Number is: " + minfinder);
答案 6 :(得分:-2)
您将参数传递给不使用它们的函数 尝试像
这样的东西function min(foo[ ]){
//Rest of the function
}
并称之为
min([1,2,3,4]);