如何检查JavaScript中的“ -infinity”

问题描述

我想检查此数字数组是否为空,因为当我运行此代码时,它返回-infinity,所以我要检查其数字是否为空,如果是,则将认值推入数组,然后检查最大值

var numbers = []; 
console.log(_.max(numbers,function(o){
    return o.id;
}));
<script type="text/javascript" 
        src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > 
</script>

解决方法

我要检查其是否为空,如果是,则将默认值推入数组,然后检查max

只需检查长度是否为零,然后预先输入默认值即可:

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Register</button>
</form>
var numbers = []; 
if(numbers.length == 0)
  numbers.push({id:0}); // or whatever default you want
console.log(_.max(numbers,function(o){
    return o.id;
}));

,

这是因为_.max函数在数组为空时返回-Infinity。因此可以使用isEmpty() or simply numbers.length > 0 && _.max(numbers)进行检查。

如果要推送默认值,请执行以下操作:

!numbers.length && numbers.push(defaultValue);
 _.max(numbers)

请参阅documentation