Javascript에서 배열 주문


배열의 순서는 데이터로 작업하는 동안 일반적인 작업입니다. JavaScript는 이 작업을 수행하는 다양한 방법을 제공합니다.

방법 1: 정렬 기능 사용



참고: sort 함수를 사용하여 javascript에서 숫자를 정렬할 때 다음과 같이 직접 사용하고 싶을 수 있습니다.

const arr = [2, 13, 4, -75, 22, 5];
arr.sort(); //[ -75, 13, 2, 22, 4, 5 ]


당신은 결과가 당신이 기대한 것과 다르다는 것을 깨닫습니다. sort 함수의 직접 사용은 다음과 같은 문자열에서만 작동합니다.

const arr2 = ["father", "mother", "children", "adam", "eve"];
arr2.sort();
//[ 'adam', 'children', 'eve', 'father', 'mother' ]


이 방법은 예상되는 출력을 제공하지만 대문자와 소문자가 다르게 취급되어서는 안됩니다. 예를 들어:

const arr3 = ["Eve", "adam"];
arr3.sort(); //[ 'Eve', 'adam' ]


배열에서 aadamEEve 앞에 올 것으로 예상하지만 대문자로 된 sort 함수의 경우는 그렇지 않습니다.
이 문제를 해결하기 위해 문자를 소문자로 변환한 다음 다음과 같이 정렬을 수행하기로 결정할 수 있습니다.

const arr3 = ["Eve", "adam"];
arr3.sort((a, b) => a.toLowerCase().localeCompare(b.toLowercase));
//[ 'adam', 'Eve' ]


이제 우리는 예상되는 결과를 얻습니다. 이것이 해결책이지만 특히 toLowerCase를 사용하면 특정 현지 언어와 작동하지 않기 때문에 다시 제기되는 문제가 있습니다.
Intl.Collator는 로케일과 비교하지 않는 정렬 순서를 지정하는 기능을 제공합니다.

const arr3 = ["Eve", "adam"];
arr3.sort(Intl.Collator().compare);
//[ 'adam', 'Eve' ]


독일 로케일을 다룰 때 문서 예제에서와 같이

const a = ["Offenbach", "Österreich", "Odenwald"];
const collator = new Intl.Collator("de-u-co-phonebk");
a.sort(collator.compare);
console.log(a.join(", "));
// → "Odenwald, Österreich, Offenbach"


또한 Intl.CollatorIntl.Collator('de', { sensitivity: 'base' })로 추가 사용자 정의를 제공합니다. 자세히 알아보기here

숫자 정렬



방법 1: 정렬 기능 사용


sort를 사용하면 숫자를 특정 순서로 정렬하는 작업이 간단해집니다.sort는 숫자를 배열하기 위해 아래와 같이 사용됩니다.

//smallest to Largest
function smallToLarge(arr) {
  return arr.sort((a, b) => a - b);
}

//largest to smallest
function largeToSmall(arr) {
  return arr.sort((a, b) => b - a);
}

reverse()를 수행한 후 sort() 방법을 사용하여 가장 큰 것에서 가장 작은 것으로 또는 그 반대로 재정렬하는 것을 단순화할 수 있습니다.

방법 2: for 루프 사용


for 루프를 사용하여 javascript의 배열 내에서 숫자를 정렬할 수도 있습니다.

//Ordering from largest to smallest
function minMax(arr) {
  let tempArr = arr;
  let minMaxArr = [];
  for (let i = 0; i < arr.length; i++) {
    let min = Math.min(...tempArr);
    tempArr = tempArr.filter((item) => item !== min);
    minMaxArr.push(min);
  }
  return minMaxArr.pop();
}


여기서는 pop 함수를 사용하여 배열의 마지막 요소를 제거합니다. 우리의 경우에는 Infinity 입니다.
최대값을 찾는 것은 다음과 같이 단순히 min 함수를 max 함수로 바꾸는 것입니다.

function maxMin(arr) {
  let tempArr = arr;
  let maxMinArr = [];
  for (let i = 0; i < arr.length; i++) {
    let max = Math.max(...tempArr);
    tempArr = tempArr.filter((item) => item !== max);
    maxMinArr.push(max);
  }
  return maxMinArr.pop();
}


도움이 되셨다면 좋아요 ❤️를 남겨주세요
행복한 코딩 🔥 🔥

좋은 웹페이지 즐겨찾기