Math.max()
注意:Math.max()传入的参数是离散的数字,故而需要使用展开运算符...
将数组展开。
var ary=[1,2,3];
var res=Math.max(...ary);
console.log(res);
手动封装getMax()方法
function getMax(ary){
var max=ary[0];
for(var i=1;i<ary.length;i++){
if(max<ary[i]){
max=ary[i];
}
}
return max;
}
var ary0=[1,4,2,3];
console.log(getMax(ary0));
数组sort()方法
sort()方法简单回顾
/*
数组排序 sort()
*/
var ary=[1,2,4,3];
//升序
ary.sort(function(a,b){
return a-b;
});
//降序
ary.sort(function(a,b){
return b-a;
});
var ary2=[{age:10},{age:30},{age:20}];
ary2.sort(function(a,b){
//a、b 代表的是数组中的每一项
return a.age-b.age;
});
console.log(ary2);
降序
//降序:最大值为数组第一项
var ary1=[1,2,3];
ary1.sort(function(a,b){
return b-a;
})[0];
//unshift() 删除数组第一项并将数值返回(会更改原数组)
var ary1=[1,2,3];
ary1.sort(function(a,b){
return b-a;
}).unshift();
升序
//升序:最大值为数组最后一项
var ary2=[1,2,3];
ary2.sort(function(a,b){
return a-b;
})[ary.length-1];
//pop() 删除数组最后一项并将数值返回(会更改原数组)
var ary3=[1,2,3];
ary3.sort(function(a,b){
return a-b;
}).pop();
函数的apply()方法
apply() 传入的第一个参数
- 严格模式:
- 不传值或者传入undefined,内部this值为undefined
- 传入null,内部this值为null
- 非严格模式:无论传入是undefined、null还是不传值,内部this值都是window
apply()剩余参数以数组形式传入
var ary4=[1,2,3]
Math.max.apply(null,ary4);
借用冒泡排序思想
var ary5=[1,3,2];
for(var i=0;i<ary.length-1;i++){
if(ary[i]>ary[i+1]){
var temp=ary[i];
ary[i]=ary[i+1];
ary[i+1]=temp;
}
}