数组中寻找最大值
1、for循环遍历
var arr = [1,2,3,4,5,6,7,9,8]
var numb = [2,5,6,7,9,1,2,45]
function getMax(a){
var max=a[0]
for(let i=0;i<a.length;i++){
if(a[i]>=max){
max=a[i]}
}
console.log(max)//9
}
getMax(arr)//9
getMax(numb)//45
2、Math.max
var arr = [1,2,3,4,5,6,7,9,8]
var numb = [2,5,6,7,9,1,2,45]
let maxarr=Math.max(...arr) //扩展运算符
let maxnum=Math.max.apply(numb ,numb ) //apply
console.log(maxarr)//9
console.log(maxnum)//45
3、Array.sort()排序之后再取最后一位
var arr = [1,2,3,4,5,6,7,9,8]
var numb = [2,5,6,7,9,1,2,45]
var maxarr = arr.sort();
var maxnum = numb.sort();
console.log(maxarr[maxarr.length-1]);//9
console.log(maxnum [maxnum.length-1]);//9 要给sort加个排序函数
var maxnum = numb.sort(function (a, b) { return a - b});
console.log(maxnum [maxnum.length-1])//45
一维数组寻找重复率最高的元素
function getmore(a){
let max=null;//定义一个用来存储出现次数最多的元素
let num=1;//定义一个用来存储最出现的次数
a.reduce(function (f,k){//f:total 初始值,上一次返回的值, k:当前元素
f[k]?f[k]++ : f[k]=1 //{1:}为fales {1:1} 下次循环 {1:1 1:}为true 所以 { 1:2}
if(f[k]>1){ //true num=2 max =1 依次循环
num=f[k]
max = k}
return f
},{})
return{max:max,num:num}
}
arr =[1,1,2,2,3,3,4,4,4]
getmore(arr)//{max: 4, num: 3}