描述: 我正在做一些练习来熟悉 Javascript。其中一个问题要求我找到下面给定对象中的最小数字。
var myObj = { key: [5, 8, 1, 4] };
我将 smallest
的初始值设置为 POSITIVE_INFINITY
和 MAX_VALUE
。
在我运行程序后(见下文),返回了 undefined
。但是,当我将 smallest
设置为 99999
时,程序可以正确执行。
我的问题:当我将变量(最小)设置为 POSITIVE_INFINITY 和 MAX_VALUE 时,是什么原因导致返回 undefined ?预先感谢您的帮助。
var myObj = { key: [5, 8, 1, 4] };
function getSmallest(obj, key) {
//var smallest = Math.POSITIVE_INFINITY; //---> undefined is returned
//var smallest = Math.MAX_VALUE; //--->undefined is returned
var smallest = 99999; //---> Correct result is returned
if (!obj.hasOwnProperty(key) || !Array.isArray(obj[key]) || obj[key].length === 0) {
return undefined;
}
for (var i in obj[key]) {
if (obj[key][i] < smallest) {
smallest = obj[key][i];
}
}
return smallest;
}
var output = getSmallest(myObj, 'key');
console.log(output);
最佳答案
MAX_VALUE
和 POSITIVE_INFINITY
常量是 Number
对象的属性,而不是 Math
的属性。您还可以使用全局 Infinity
常数。
关于javascript - 在 javascript 中将数字与设置为 POSITIVE_INFINITY 和 MAX_VALUE 的 var 进行比较后返回“未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949392/