integer empty variable javascript
integer empty variable javascript
我不知道为什么这个返回未定义?
var array = [6, 4, 6, 9];
var min;
var findminimum = function(){
array.reduce(function(prev, cur, index, array) {
if (cur < min) {
min = cur;
}
}, 0);
return min;
};
console.log(findminimum());
但当我设置时:
var min = 20;
它运行正常,所以有人可以向我解释如何正确定义num变量吗?
事实上,Javascript中的undefined
意味着,这个变量还没有定义,这正是您的情况:
在为变量min
赋值之前,您正在使用该变量,因此:
if (cur < min)
将始终返回false
,因此没有分配给min
的值,并且min = cur;
永远不会达到,并且您的函数将返回undefined
。
编辑:
如果你只写var min;
,你只是声明变量min
来使用它,你必须通过给它赋值来初始化它,在你的情况下,你应该写:
var min = 0;
现在min
将具有值0
,然后可以将其与其他变量进行比较。
问题是因为min
没有初始化为值,所以它是undefined
。因此,您的比较if (cur < min)
永远不会为真,并且min
仍然是未定义的。此外,如果您要使用reduce()
而不是简单的循环,您可能希望以不同的方式使用它,下面是一个有效的代码示例:
var array = [6, 4, 6, 9, 1, -99];
var min = 9999;
var findminimum = function () {
// you could return the final output of reduce()...
return array.reduce(function (prev, cur, index, array) {
if (cur < min) {
min = cur;
}
return min; // ...then this return statement would be here inside the reduce callback
}, 0);
};
console.log(findminimum());
您需要为min分配一个值,否则您将无法测试其值
if (typeof min == "undefined" || cur < min) {
min = cur;
}
您的主要问题是,使用reduce min
的ouside中的一个变量来存储数组的最小值。Array#reduce()
是一种从具有可能给定起始值的迭代中获得单个结果的方法。
问题(顺序相反):
-
reduce(..., 0)
以0开头。毫无意义,因为它可能是一个最小值或一个太小的值,就像在您的数组[6, 4, 6, 9]
中一样。 -
最好不取
initialValue
,因为如果不给定initialValue
,则reduce取prev
和cur
的前两个元素。如果数组只有一个元素,则返回此元素。 -
所需减少的缩写:
min = array.reduce(function (prev, cur) { return cur < prev ? cur : prev; });
现在你可以把它放进一个函数中求最小值,并把一个数组作为参数:
function getMinimum(array) {
return array.reduce(function (prev, cur) {
return cur < prev ? cur : prev;
});
}
document.write(getMinimum([6, 4, 6, 9]) + '<br>');
document.write(getMinimum([6, 4]) + '<br>');
document.write(getMinimum([42]) + '<br>');
- ColdFusion XML to Javascript variable
- Underscore as a JavaScript variable?
- Javascript: variable = variable.conat(anothervariable);
- Perl JavaScript/Variable 从 JavaScript/jquery 传递到 Perl
- jade using javascript variable (mongo model)
- javascript getElementsByClassName from javascript variable
- Javascript Variable to C#
- Magento static block javascript variable
- javascript variable DB.transaction
- Using a javascript variable inside the <p> element
- Javascript variable = xsl value-of
- Jquery Javascript Variable
- 在jQuery中使用JavaScript-Variable
- JSON with Javascript variable
- Javascript variable
- javascript variable's weird behaviour
- JavaScript variable is "null"
- Javascript variable = variable
- C# and Javascript Variable
- Javascript variable scope(?)