如果您的数组或类似数组的对象是numeric,也就是说,如果它的所有元素都是数字,则可以使用Math.min.apply或作为第一个参数Math.max.apply传递null,而将数组作为第二个参数传递。
var myArray = [1, 2, 3, 4]; Math.min.apply(null, myArray); // 1个个个个个个 Math.max.apply(null, myArray); // 4
在ES6中,可以使用...运算符扩展数组并采用最小或最大元素。
var myArray = [1, 2, 3, 4, 99, 20]; var maxValue = Math.max(...myArray); // 99 var minValue = Math.min(...myArray); // 1个个个个个个
以下示例使用for循环:
var maxValue = myArray[0]; for(var i = 1; i < myArray.length; i++) { var currentValue = myArray[i]; if(currentValue > maxValue) { maxValue = currentValue; } }
以下示例用于查找最小值或最大值:Array.prototype.reduce()
var myArray = [1, 2, 3, 4]; myArray.reduce(function(a, b) { return Math.min(a, b); }); // 1个个个个个个 myArray.reduce(function(a, b) { return Math.max(a, b); }); // 4
或使用箭头功能:
myArray.reduce((a, b) => Math.min(a, b)); // 1个个个个个个 myArray.reduce((a, b) => Math.max(a, b)); // 4
为了概括reduce版本,我们必须传递一个初始值以覆盖空列表的情况:
function myMax(array) { return array.reduce(function(maxSoFar, element) { return Math.max(maxSoFar, element); }, -Infinity); } myMax([3, 5]); // 5 myMax([]); // -无限 Math.max.apply(null, []); // -无限
有关如何正确使用的详细信息,reduce请参见减小值。
问题 怎样从一个集合中获得最大或者最小的 N 个元素列表? 解决方案 heapq 模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题。 import heapq nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2] print(heapq.nlargest(3, nums)) # Prints [42, 37, 23] p
我有一个对象流,我想找到一个最大值的一些属性,计算起来很昂贵。 作为一个特定的简单示例,假设我们有一个字符串列表,我们希望找到最酷的一个,给定函数。
我们已经看到,较大的页表会导致额外的开销,因为必须将该表分成页面,然后将其存储到主内存中。 我们担心的是执行进程而不是执行页表。 页表为执行过程提供了支持。 页面越大,开销越高。 例如,我们知道 - 将会有100万页这是相当大的数字。 但是,尝试使页面大小更大,例如:2MB。 然后,页表中的页数=(2 X 2 ^ 30)/(2 X 2 ^ 20)= 1K页。 如果比较两种情况,可以知道页面大小与页
问题内容: 我有一个对象流,我想找到一个具有某些属性最大值的对象,该属性的计算成本很高。 作为一个简单的具体示例,假设我们有一个字符串列表,并且希望找到给定功能的最酷的字符串。 以下应该工作: 现在,这有两个问题。首先,假设计算起来很昂贵,这可能不是很有效。我想该方法将需要重复使用比较器,该比较器将依次重复调用,最后每个字符串将被多次调用。 其次,必须提供比较器会导致代码有些冗余。我更喜欢这样的语
我实现了c程序,可以找到矩阵的元素:行的最大元素,同时列的最小元素,或行的-min元素,同时列的最大元素。例如,我们有数据。包含以下内容的txt文件: 4 7 8 9 10 6 5 4 11 5 0 1 12 4 2 7 13- 其中4是n-矩阵大小(4x4),7和10是这些数字。 下面是代码: 问题:我想知道我的代码是不是“脏”代码?因为我总是渴望让一切变得如此困难,只要有可能让它变得容易。是否