如何从数组中输入的数字中找到最大数字?
我已经尝试过的事情:
var largest = Math.max.apply(Math, number[i]);
var smallest = Math.min.apply(Math, number[i]);
答案 0 :(得分:8)
你非常接近:
Math.max.apply(Math, number);
您需要将数组的所有元素传递给max()
方法; [i]
在这里没有意义。
答案 1 :(得分:3)
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
答案 2 :(得分:2)
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);
答案 3 :(得分:1)
你很接近,试试这个:
Math.max.apply(Math.max, number);
即,第二个参数将数组转换为参数列表。
(实际上因为 Math.max 从不需要 this ,所以你不需要 apply 的第一个参数;所以{{1} }或Math.max.apply(null, number)
也有效。)
答案 4 :(得分:0)
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
答案 5 :(得分:0)
使用 - Array.prototype.reduce()
很酷!
[267, 306, 108].reduce((acc,val)=> (acc>val)?acc:val)
其中 acc =累积器且 val =当前值;