본문 바로가기
javaScript/JS Tutorial

[javaScript]배열 최소값 최대값 찾기

by mooyou 2022. 11. 8.
728x90
300x250

배열에서 최대값 또는 최소값을 찾는 내장 함수는 없지만

배열 정렬 후 인덱스 값을 호출해서 가장 높은값과 가장 낮은 값을 얻을 수 있다.

 

최소값 찾기

<p>The lowest number is <span id="demo"></span>.</p>

<script>
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});
document.getElementById("demo").innerHTML = points[0];
</script>

결과

The lowest number is 1.

 

 

최대값 찾기

<p>The highest number is <span id="demo"></span>.</p>

<script>
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});
document.getElementById("demo").innerHTML = points[points.length - 1];
</script>

결과

The highest number is 100.

 

 

내림차순을 이용할 수도 있다.

<p>The highest number is <span id="demo"></span>.</p>

<script>
const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});
document.getElementById("demo").innerHTML = points[0]; //The highest number is 100.
</script>

 

그러나 위의 방법은 단지 가장 높은(낮은) 값을 찾기 위해서 전체 배열을 정렬해야 하기 때문에 비효율 적이다.

 

 

 

배열에서 Math.min() 사용하기

배열에서 가장 낮은 숫자 찾기

const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = myArrayMin(points);

function myArrayMin(arr) {
  return Math.min.apply(null, arr); //1
}

 

 

배열에서 Math.max() 사용하기

배열에서 가장 높은 숫자 찾기

const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = myArrayMax(points);

function myArrayMax(arr) {
  return Math.max.apply(null, arr); //100
}

 

가장 빠른 해결 책으로 직적 함수를 만들어 사용할 수 있다.

아래 함수는 각 값을 발견된 가장 높은 값과 비교하는 배열을 반복한다.

 

최대값 찾기

<p>The highest number is <span id="demo"></span>.</p>

<script>
const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = myArrayMax(points);

function myArrayMax(arr) {
  let len = arr.length;
  let max = -Infinity;
  while (len--) {
    if (arr[len] > max) {
      max = arr[len];
    }
  }
  return max;
}
</script>

 실행결과

The highest number is 100.

 

최소값 찾기

<p>The lowest number is <span id="demo"></span>.</p>

<script>
const points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = myArrayMin(points);

function myArrayMin(arr) {
  let len = arr.length;
  let min = Infinity;
  while (len--) {
    if (arr[len] < min) {
      min = arr[len];
    }
  }
  return min;
}
</script>

 

실행결과

The lowest number is 1.

 

 

 

 

 

참고 : https://www.w3schools.com/js/js_array_sort.asp

728x90
반응형

댓글