javascript - 在 javascript 中将数字与设置为 POSITIVE_INFINITY 和 MAX_VALUE 的 var 进行比较后返回“未定义”

标签 javascript

描述: 我正在做一些练习来熟悉 Javascript。其中一个问题要求我找到下面给定对象中的最小数字。

var myObj = { key: [5, 8, 1, 4] };

我将 smallest 的初始值设置为 POSITIVE_INFINITYMAX_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_VALUEPOSITIVE_INFINITY常量是 Number 对象的属性,而不是 Math 的属性。您还可以使用全局 Infinity常数。

关于javascript - 在 javascript 中将数字与设置为 POSITIVE_INFINITY 和 MAX_VALUE 的 var 进行比较后返回“未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949392/

相关文章:

javascript - boxslider 插件在 sitecore 预览模式下不工作

javascript - Angular 2 显示混合元素数组

javascript - PrototypeJS 不删除选择元素

javascript - 获取谷歌地图标记的坐标

javascript - 将 .json 文件导入 javascript 时,我的 HTML 文件失去了从 javascript 代码调用函数的能力

javascript - AngularJS - 您是否从服务/工厂返回 promise 或数据?

javascript - 动态表单字段的限制

javascript - 在 JQuery .trigger 上传递参数

javascript - Highstock - 动态更改刻度定位器

javascript - 如果跨域 Ajax 请求遇到目标 div 的内容生成比文档加载晚几秒怎么办