如何从我在数组中输入的数字中找到最大的数字?
我已经尝试过的事情:
var largest = Math.max.apply(Math, number[i]);
var smallest = Math.min.apply(Math, number[i]);
如何从我在数组中输入的数字中找到最大的数字?
我已经尝试过的事情:
var largest = Math.max.apply(Math, number[i]);
var smallest = Math.min.apply(Math, number[i]);
你非常接近:
Math.max.apply(Math, number);
您需要将数组的所有元素传递给max()
方法;[i]
在这里没有意义。
Math.max.apply 是其他答案中所说的选项,但我认为 reduce 在语言中更常见:
var number=[1,2,3,2,1,1];
number.reduce(function(a,b){return a>b ? a : b;});
// returns 3
Math.max.apply(Math.max, number);
// returns 3
var max = number[0], i = 0;
for (i = 0; i < n; ++i) {
if (number[i] > max) {
max = number[i];
}
}
或者我推荐underscore.js
var max = _.max(number);
你很接近,试试这个:
Math.max.apply(Math.max, number);
即,第二个参数将数组转换为参数列表。
(实际上,因为Math.max从来不需要this,所以你不需要apply的第一个参数;所以Math.max.apply(null, number)
orMath.max.apply('aaaaahhh', number)
也可以。)
function compare(a, b) {
if (a > b) return 1
else if (a < b) return -1
else return 0
}
var arr = [ 1, 2, 15, 12.5, 16, 3.35 ]
arr.sort(compare)
alert( arr[2] ) // your n number
// i used sort() but because by default it sorting in lexicographical order i
passed it throuth custom comparisom , it works fine for me
使用 -Array.prototype.reduce()
很酷!
[267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val)
其中acc = 累加器和val = 当前值;