【发布时间】:2018-03-08 01:07:50
【问题描述】:
我正在尝试处理具有非连续数字的数组。这是我的例子var myArray = [2, 4, 6, 8]。缺席号码是 3, 5, 7 and the quantity = 3 。我试图用这个函数得到它`
function makeArrayConsecutive(myArray) {
return Math.max(myArray) - Math.min(myArray) + 1 - myArray.length;
}
var myArray = [2, 4, 6, 8];
console.log(makeArrayConsecutive(myArray));
这必须返回 3 ... 但它返回 NaN... 有什么问题?
【问题讨论】:
-
试试
Math.max(...myArray)和Math.min(...myArray)。Math.min和Math.max需要逗号分隔的数字列表,而不是数组。您可以使用spread operator (...) 将数组表示为参数列表。在标记的副本中有一个进一步说明的答案。 -
function makeArrayConsecutive(myArray) { maxVal = myArray.reduce(function(a,b){ return Math.max(a,b)}) minVal = myArray.reduce(function(a,b){ return Math.min(a,b)}) return maxVal-minVal+1-myArray.length }
标签: javascript