배열의 값 크기를 비교하는 것은 비교적 일반적인 작업입니다. 크기를 비교하는 방법에는 여러 가지가 있습니다. 예를 들어 다음과 같은 방법이 있습니다. 다음과 같습니다.
방법 1:
//最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array.prototype.max = function() { var max = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] > max) { max = this[i]; } } return max; }
개발용 클래스 라이브러리를 도입하고 클래스 라이브러리가 동일한 이름의 프로토타입 메소드도 구현하는지 걱정된다면 함수를 생성하기 전에 중복된 이름을 확인할 수 있습니다.
if (typeof Array.prototype['max'] == 'undefined') { Array.prototype.max = function() { ... ... } }
방법 2:
Math.max 및 Math.min 방법을 사용하면 결과를 빠르게 얻을 수 있습니다. Apply를 사용하면 메서드에서 호출 개체와 들어오는 매개 변수를 지정할 수 있으며 들어오는 매개 변수는 배열 형식으로 구성됩니다. 이제 Math.max라는 메서드가 있고 호출 개체는 Math이며 여러 매개 변수가 있습니다
Array.max = function( array ){ return Math.max.apply( Math, array ); }; Array.min = function( array ){ return Math.min.apply( Math, array ); };
그러나 John Resig는 이를 Math 객체의 정적 메서드로 만들고 마스터가 가장 좋아하는 체인 호출을 사용할 수 없습니다. 하지만 이 방법은 더 효율적일 수 있습니다. Math 객체도 객체라는 점을 잊지 마세요. 객체의 리터럴 값에 이를 작성하면 몇 비트를 절약할 수 있습니다.
Array.prototype.max = function(){ return Math.max.apply({},this) } Array.prototype.min = function(){ return Math.min.apply({},this) } [1,2,3].max()// => 3 [1,2,3].min()// => 1
방법 3:
function getMaximin(arr,maximin) { if(maximin=="max") { return Math.max.apply(Math,arr); } else if(maximin=="min") { return Math.min.apply(Math, arr); } } var a=[3,2,4,2,10]; var b=[12,4,45,786,9,78]; console.log(getMaximin(a,"max"));//10 console.log(getMaximin(b,"min"));//04
방법 4:
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值
다차원 배열은 다음과 같이 수정할 수 있습니다.
var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值 alert(Math.min.apply(null,ta));//最小值
위 내용은 편집자가 공유한 배열의 최대값과 최소값을 얻는 Javascript 방법을 요약한 것입니다.