전 블로그 글에서 Javascript에서 가장 많이 사용하는 라이브러리인 Lodash에 대해 알려 드렸습니다. 오늘은 그 중에 가장 유용하고 또한 성능도 좋은 uniq에 대해 알아보겠습니다.

Lodash는 프로그래밍을 더 쉽고 효율적으로 만들기 위해 유틸리티 함수를 제공하는 JavaScript 라이브러리입니다. 그 중에서 가장 유용한 함수 중 하나가 uniq()입니다. 이 함수는 배열에서 중복 값을 제거하는 데 사용됩니다. 그러나 uniq()는 일반적인 함수가 아닙니다. Lodash에는 실제로 네 가지 다른 uniq() 함수 패밀리가 있습니다. 각각 고유한 기능과 사용 방법을 가지고 있습니다. 이 글에서는 각 uniq() 패밀리에 대해 알아보고 예제와 함께 사용 방법을 알아보겠습니다.

목차

  • 소개
  • Lodash uniq() 기본 사항
  • Lodash uniq()의 간단한 예제
  • 첫 번째 패밀리: uniq()
  • 두 번째 패밀리: uniqBy()
  • 세 번째 패밀리: uniqWith()
  • 네 번째 패밀리: sortedUniq()
  • 결론
  • FAQ

소개

Lodash는 JavaScript 개발에서 유용한 유틸리티 함수들을 제공하는 라이브러리입니다. Lodash의 uniq() 함수는 배열에서 중복 값을 제거할 때 유용하게 사용됩니다. 그러나 uniq() 함수는 배열에서 중복 값을 제거하는 기본적인 방법 이상으로 유용한 기능들이 추가된 네 가지 다른 패밀리가 있습니다.

Lodash uniq() 기본 사항

uniq() 함수는 배열에서 중복 값을 제거하는 데 사용됩니다. uniq() 함수는 원래 배열에서 유일한 값만으로 구성된 새로운 배열을 반환합니다.

const arr = [1, 2, 2, 3, 3, 3];
const uniqArr = _.uniq(arr);

console.log(uniqArr); // [1, 2, 3]

위 예제에서는 uniq() 함수를 사용하여 arr 배열에서 중복 값을 제거한 새로운 배열 uniqArr를 생성하고 반환합니다.

Lodash uniq()의 간단한 예제

uniq() 함수의 기본 사용 방법은 간단하지만 Lodash의 uniq() 함수는 다른 유형들과 함께 사용하면 더욱 강력해집니다. 예를 들어, 다음과 같은 배열이 있다고 가정해 봅시다.

const people = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 25 },
  { name: 'Joe', age: 30 },
  { name: 'Janet', age: 35 }
];

uniq() 함수를 사용하여 이 배열에서 중복 값을 제거하면

const uniqPeople = _.uniq(people);

console.log(uniqPeople);
// [{ name: 'John', age: 25 }, { name: 'Jane', age: 25 }, { name: 'Joe', age: 30 }, { name: 'Janet', age: 35 }]

위의 예제에서는 uniq() 함수를 사용하여 people 배열에서 중복 값을 제거하였지만, uniq() 함수는 객체 배열에서는 중복 값을 제거하지 못합니다. 따라서, 다른 uniq() 함수 패밀리를 사용하여 객체 배열에서 중복 값을 제거해야 합니다.

첫 번째 패밀리: uniq()

첫 번째 uniq() 패밀리는 Lodash에서 가장 기본적인 중복 값 제거 함수입니다. 이 함수는 배열에서 중복 값을 제거하여 유일한 값만으로 구성된 배열을 반환합니다. 이 패밀리는 객체 배열에서는 사용할 수 없으며, 기본 자료형 배열에서만 사용할 수 있습니다.

const arr = [1, 2, 2, 3, 3, 3];
const uniqArr = _.uniq(arr);

console.log(uniqArr); // [1, 2, 3]

위 예제와 같이 기본 자료형 배열에서는 uniq() 함수가 중복 값을 제거하는 데 유용하게 사용됩니다.

두 번째 패밀리: uniqBy()

두 번째 uniqBy() 패밀리는 배열에서 객체를 비교할 때 사용합니다. 이 함수는 객체의 특정 속성을 기준으로 중복 값을 제거합니다.

const people = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 25 },
  { name: 'Joe', age: 30 },
  { name: 'Janet', age: 35 }
];

const uniqPeople = _.uniqBy(people, 'age');

console.log(uniqPeople);
// [{ name: 'John', age: 25 }, { name: 'Joe', age: 30 }, { name: 'Janet', age: 35 }]

위의 예제에서는 uniqBy() 함수를 사용하여 people 배열에서 age 속성을 기준으로 중복 값을 제거하였습니다.

세 번째 패밀리: uniqWith()

세 번째 uniqWith() 패밀리는 사용자 정의 비교 함수를 사용하여 중복 값을 제거합니다.

const arr = [
  { name: 'John', age: 25 },
  { name: 'Jane', age: 25 },
  { name: 'Joe', age: 30 },
  { name: 'Janet', age: 35 }
];

const uniqArr = _.uniqWith(arr, (a, b) => a.age === b.age);

console.log(uniqArr);
// [{ name: 'John', age: 25 }, { name: 'Joe', age: 30 }, { name: 'Janet', age: 35 }]

위의 예제에서는 uniqWith() 함수를 사용하여 age 속성을 기준으로 중복 값을 제거하였습니다.

네 번째 패밀리: sortedUniq()

네 번째 sortedUniq() 패밀리는 정렬된 배열에서 중복 값을 제거하는 데 사용됩니다. 이 함수는 중복 값을 제거한 후 배열을 정렬합니다.

const arr = [1, 2, 2, 3, 3, 3];
const uniqArr = _.sortedUniq(arr);

console.log(uniqArr); // [1, 2, 3]

위의 예제에서는 sortedUniq() 함수를 사용하여 arr 배열에서 중복 값을 제거한 후 배열을 정렬하였습니다.

결론

Lodash의 uniq() 함수는 배열에서 중복 값을 제거하는 데 유용합니다. 그러나, 배열이나 객체 배열에서 중복 값을 제거할 때는 각각 다른 패밀리를 사용해야 합니다. 첫 번째 패밀리는 기본 자료형 배열에서 사용하며, 두 번째 패밀리는 객체 배열에서 특정 속성을 기준으로 사용합니다. 세 번째 패밀리는 사용자 정의 비교 함수를 사용하여 중복 값을 제거하며, 네 번째 패밀리는 정렬된 배열에서 중복 값을 제거합니다.

FAQ

  1. Lodash uniq() 함수는 어떤 경우에 사용하나요?
  • 배열에서 중복 값을 제거할 때 사용합니다.
  1. Lodash uniq() 함수 외에도 중복 값을 제거하는 다른 함수가 있나요?
  • Lodash에는 uniqBy(), uniqWith(), sortedUniq() 함수가 있습니다.
  1. uniqBy() 함수에서 중복 값을 제거할 속성을 어떻게 선택하나요?
  • uniqBy() 함수에서는 객체 배열에서 중복 값을 제거할 속성을 두 번째 매개변수로 전달합니다.
  1. uniqWith() 함수에서 사용자 정의 비교 함수는 어떻게 만드나요?
  • 사용자 정의 비교 함수는 두 개의 인자를 받아 참 또는 거짓을 반환하는 함수입니다.
  1. sortedUniq() 함수는 어떤 경우에 사용하나요?
  • sortedUniq() 함수는 정렬된 배열에서 중복 값을 제거할 때 사용합니다.