비교 기능과 함께 정렬을 사용하여 배열의 최대값과 최소값 찾기

JavaScript의 배열에는 최대 및 최소 수를 찾는 내장 메서드가 없습니다. 그러나 이를 달성할 수 있는 몇 가지 다른 방법이 있습니다. 가장 쉬운 방법은 Math 메서드를 사용하는 것입니다. 즉, Math.max.apply(null, numberArray)는 최대값이고 Math.min.apply(null, numberArray)는 Math.max.apply(null, numberArray)입니다. 그러나이 게시물에서는 동일한 결과를 얻기 위해 다른 기술을 사용할 것입니다. 정렬 방법. 정렬 방법을 사용하여 값을 오름차순 또는 내림차순으로 정렬하고 인덱스를 사용하여 최소 및 최대 수를 얻습니다.
정렬 방법 사용
먼저 정렬 방법을 사용하여 배열의 숫자를 정렬합니다. 배열 정렬 방법은 배열의 요소를 오름차순으로 정렬합니다. 그러나 정렬 방법이 JavaScript의 숫자 배열에서 항상 잘 작동하는 것은 아닙니다. 문자열 배열에서만 완벽합니다. 숫자 배열과 함께 정렬 방법을 사용하기 위해 비교 기능을 소개합니다. 비교 함수는 형식 함수 (a, b){return a-b}를 사용합니다. 정렬 방법과 결합하면 numberArray.sort(function (a, b){return a-b})와 비슷한 결과를 얻을 수 있습니다. 이 형식은 배열을 오름차순으로 반환합니다.

//create an array of numbers
const numbers = [2, 67,86, 34, 67, 45]

//sort the arrays using the compare function
let sortedNumbers = numbers.sort(function(a, b){
    return a-b;
})

console.log(sortedNumbers) //[ 2, 34, 45, 67, 67, 86 ]


그러나 이것은 어떻게 작동합니까? 이것은 약간 혼란스러울 수 있지만 이해하기는 매우 쉽습니다. 정렬 기능은 두 개의 숫자를 가져와 비교 기능으로 보냅니다. 비교 함수는 두 숫자에 대한 평가를 수행하고 결과를 반환합니다. 반환된 결과는 양수, 음수 또는 0의 세 가지 형식으로만 나타날 수 있습니다. 반환된 결과가 음수이면 비교 함수의 첫 번째 값(이 경우 a)이 두 번째 값보다 먼저 정렬되고 b 정렬 함수는 반환된 값을 사용하여 숫자를 정렬합니다. 반환된 값이 양수이고 b가 a보다 먼저 정렬되면 그 반대의 경우가 발생합니다. 반환 값 0의 경우 두 값의 정렬 순서가 변경되지 않습니다.
이제 내림차순으로 정렬된 새 배열이 있으므로 이제 최소값과 최대값을 가져옵니다. 이것은 첫 번째 요소의 인덱스 값만 최소값으로 사용하고 마지막 요소의 인덱스 값을 최대값으로 사용하기 때문에 매우 쉽게 달성할 수 있습니다.

//create an array of numbers
const numbers = [2, 67,86, 34, 67, 45]

//sort the arrays using the compare function
let sortedNumbers = numbers.sort(function(a, b){
    return a-b;
})

console.log(sortedNumbers) //[ 2, 34, 45, 67, 67, 86 ]

//get the minimum value
const minimumValue = sortedNumbers[0];
console.log(minimumValue) //2

//get the maximum value
const maximumValue = sortedNumbers[sortedNumbers.length-1];
console.log(maximumValue) //86


배열을 내림차순으로 정렬하고 인덱스 값을 교환하여 최소값과 최대값을 얻을 수도 있습니다. 내림차순으로 정렬하기 위해 비교 함수는 두 번째 값에서 첫 번째 값을 뺀 결과로 반환 값을 갖습니다.

// //create an array of numbers
const numbers = [2, 67,86, 34, 67, 45]

//sort the arrays in descending order using the compare function
let sortedNumbersDesc = numbers.sort(function(a, b){
    return b-a;
})

console.log(sortedNumbersDesc) //[ 2, 34, 45, 67, 67, 86 ]

//get the minimum value
const minimumValue = sortedNumbersDesc[sortedNumbersDesc.length-1];
console.log(minimumValue) //2

//get the maximum value
const maximumValue = sortedNumbersDesc[0];
console.log(maximumValue) //86


Math.max.apply() 및 Math.min.appy() 사용
동일한 결과를 얻기 위해 Math.max.apply() 및 Math.min.apply()를 사용해 봅시다.

// //create an array of numbers
const numbers = [2, 67,86, 34, 67, 45];
//get the minimum value
console.log(Math.min.apply(null, numbers)) // 2
//get the maximum value
console.log(Math.max.apply(null, numbers)) // 86


이것이 이번 포스트의 전부입니다. 즐거운 독서와 행복한 코딩이 되셨기를 바랍니다!

좋은 웹페이지 즐겨찾기