我怎样才能轻松地获得一个JavaScript数组的最小或最大元素?
伪代码示例:
let array = [100, 0, 50]
array.min() //=> 0
array.max() //=> 100
我怎样才能轻松地获得一个JavaScript数组的最小或最大元素?
伪代码示例:
let array = [100, 0, 50]
array.min() //=> 0
array.max() //=> 100
当前回答
这里还有一个例子。使用lodash从数组中计算Max/Min值。
let 数组 = [100, 0, 50]; var func = _.over(Math.max, Math.min); var [max, min] = func(...阵列); => [100, 0] 控制台.log(最大); 控制台.log(分钟); <script src=“https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js”></script>
其他回答
var max_of_array = Math.max.apply(Math, array);
完整的讨论见: http://aaroncrane.co.uk/2008/11/javascript_max_api/
您可能不希望向Array原型添加方法,这可能与其他库冲突。
我见过很多使用forEach的例子,我不推荐它用于大型数组,因为它的性能比for循环差。https://coderwall.com/p/kvzbpa/don-t-use-array-foreach-use-for-instead
同时数学。max(数学,[1,2,3]);总是给我NaN?
function minArray(a) {
var min=a[0]; for(var i=0,j=a.length;i<j;i++){min=a[i]<min?a[i]:min;}
return min;
}
function maxArray(a) {
var max=a[0]; for(var i=0,j=a.length;i<j;i++){max=a[i]>max?a[i]:max;}
return max;
}
minArray([1,2,3]); // returns 1
如果你有一个对象数组,下面的minArray()函数示例将接受2个参数,第一个是数组,第二个是对象键值比较的键名。本例中的函数将返回给定键值最小的数组的下标。
function minArray(a, key) {
var min, i, j, index=0;
if(!key) {
min=a[0];
for(i=0,j=a.length;i<j;i++){min=a[i]<min?a[i]:min;}
return min;
}
min=a[0][key];
for(i=0,j=a.length;i<j;i++){
if(a[i][key]<min) {
min = a[i][key];
index = i;
}
}
return index;
}
var a = [{fee: 9}, {fee: 2}, {fee: 5}];
minArray(a, "fee"); // returns 1, as 1 is the proper array index for the 2nd array element.
让arr =[76年20日8日,29日,7日,21日,9] Math.max。应用(数学,arr);/ / 76
下面的脚本在ndoejs中为我工作:
var numbers = [1, 2, 3, 4];
console.log('Value:: ' + Math.max.apply(null, numbers) ); // 4
您可以使用lodash的方法
_.max([4, 2, 8, 6]);
returns => 8
https://lodash.com/docs/4.17.15#max
_.min([4, 2, 8, 6]);
returns => 2
https://lodash.com/docs/4.17.15#min