[javascript] Lodash의 데이터 연산 함수들과 사용 예제

Lodash는 자바스크립트로 작성된 유용한 유틸리티 라이브러리입니다. Lodash는 데이터를 다루는 다양한 연산을 제공하며, 이를 통해 코드의 가독성과 효율성을 높일 수 있습니다. 이번 글에서는 Lodash의 일부 데이터 연산 함수들과 간단한 사용 예제를 소개하겠습니다.

1. _.map

_.map 함수는 배열의 값에 대해 지정된 함수를 적용하여 새로운 배열을 생성합니다. 이를 통해 배열의 각 요소를 변환하거나 원하는 형태로 가공할 수 있습니다.

사용 예제:

const numbers = [1, 2, 3, 4, 5];

const squaredNumbers = _.map(numbers, (num) => {
  return num * num;
});

console.log(squaredNumbers);
// 출력: [1, 4, 9, 16, 25]

위 예제에서는 numbers 배열의 각 요소를 제곱하여 squaredNumbers 배열을 생성합니다.

2. _.filter

_.filter 함수는 배열의 값에 대해 지정된 조건을 만족하는 요소들로 이루어진 새로운 배열을 생성합니다. 이를 통해 배열에서 필요한 요소들만 추출할 수 있습니다.

사용 예제:

const numbers = [1, 2, 3, 4, 5];

const evenNumbers = _.filter(numbers, (num) => {
  return num % 2 === 0;
});

console.log(evenNumbers);
// 출력: [2, 4]

위 예제에서는 numbers 배열에서 짝수인 요소들만 추출하여 evenNumbers 배열을 생성합니다.

3. _.reduce

_.reduce 함수는 배열의 값에 대해 지정된 함수를 반복적으로 적용하여 하나의 결과값을 반환합니다. 이를 통해 배열의 값을 축약하거나, 통계적인 계산을 수행할 수 있습니다.

사용 예제:

const numbers = [1, 2, 3, 4, 5];

const sumOfNumbers = _.reduce(numbers, (sum, num) => {
  return sum + num;
}, 0);

console.log(sumOfNumbers);
// 출력: 15

위 예제에서는 numbers 배열의 모든 요소를 더하여 sumOfNumbers 변수에 저장합니다.

4. _.sortBy

_.sortBy 함수는 배열의 값을 기준으로 정렬된 새로운 배열을 반환합니다. 정렬 기준은 지정된 함수에 의해 결정됩니다.

사용 예제:

const students = [
  { name: 'Alice', age: 20 },
  { name: 'Bob', age: 25 },
  { name: 'Charlie', age: 18 }
];

const sortedStudents = _.sortBy(students, (student) => {
  return student.age;
});

console.log(sortedStudents);
// 출력: [
//   { name: 'Charlie', age: 18 },
//   { name: 'Alice', age: 20 },
//   { name: 'Bob', age: 25 }
// ]

위 예제에서는 students 배열을 나이를 기준으로 오름차순 정렬하여 sortedStudents 배열을 생성합니다.

5. _.groupBy

_.groupBy 함수는 배열의 값을 기준으로 그룹화된 객체를 반환합니다. 그룹화 기준은 지정된 함수에 의해 결정됩니다.

사용 예제:

const students = [
  { name: 'Alice', grade: 'A' },
  { name: 'Bob', grade: 'B' },
  { name: 'Charlie', grade: 'A' }
];

const groupedStudents = _.groupBy(students, (student) => {
  return student.grade;
});

console.log(groupedStudents);
// 출력: {
//   A: [
//     { name: 'Alice', grade: 'A' },
//     { name: 'Charlie', grade: 'A' }
//   ],
//   B: [
//     { name: 'Bob', grade: 'B' }
//   ]
// }

위 예제에서는 students 배열을 학점을 기준으로 그룹화하여 groupedStudents 객체를 생성합니다.

Lodash는 이외에도 다양한 데이터 연산 함수들을 제공합니다. 위에서 소개한 함수들 외에도 Lodash 공식 문서를 참고하여 여러 기능을 활용해보세요!