[javascript] Lodash의 유틸리티 함수들과 사용 예제

Lodash는 자바스크립트 유틸리티 라이브러리로, 다양한 기능을 제공하는 함수들로 구성되어 있습니다. 이번 포스트에서는 Lodash의 몇 가지 유용한 함수들과 간단한 사용 예제를 살펴보겠습니다.

1. _.map

_.map 함수는 배열의 각 요소에 대해 주어진 함수를 실행하고 그 결과를 새로운 배열로 반환합니다. 다음은 _.map 함수를 사용하여 배열의 값을 제곱하는 예제입니다.

const array = [1, 2, 3, 4, 5];
const squaredArray = _.map(array, (num) => num * num);

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

2. _.filter

_.filter 함수는 주어진 조건을 만족하는 배열의 요소들로 새로운 배열을 생성합니다. 다음은 _.filter 함수를 사용하여 배열에서 짝수만 필터링하는 예제입니다.

const array = [1, 2, 3, 4, 5];
const evenArray = _.filter(array, (num) => num % 2 === 0);

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

3. _.find

_.find 함수는 주어진 조건을 만족하는 첫 번째 요소를 반환합니다. 다음은 _.find 함수를 사용하여 객체 배열에서 특정 조건을 만족하는 첫 번째 객체를 찾는 예제입니다.

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 35 }
];

const user = _.find(users, { name: 'Bob' });

console.log(user);
// 출력: { name: 'Bob', age: 30 }

4. _.groupBy

_.groupBy 함수는 배열의 요소들을 주어진 함수의 결과를 기준으로 그룹화하여 객체로 반환합니다. 다음은 _.groupBy 함수를 사용하여 배열을 나이로 그룹화하는 예제입니다.

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 35 }
];

const groupedUsers = _.groupBy(users, (user) => user.age);

console.log(groupedUsers);
// 출력: { '25': [{ name: 'Alice', age: 25 }], '30': [{ name: 'Bob', age: 30 }], '35': [{ name: 'Charlie', age: 35 }] }

5. _.debounce

_.debounce 함수는 주어진 함수의 실행을 지연시킵니다. 특히 이벤트 핸들러와 함께 사용하여 사용자의 연속된 이벤트 발생을 제어하는 데 유용합니다. 다음은 _.debounce 함수를 사용하여 입력 필드에 입력이 멈출 때마다 검색 함수를 호출하는 예제입니다.

const searchInput = document.getElementById('search-input');

const search = _.debounce((query) => {
  // 검색 함수 실행
  console.log(`Searching for "${query}"...`);
}, 500);

searchInput.addEventListener('input', (event) => {
  const query = event.target.value;
  search(query);
});

이상으로 Lodash의 유틸리티 함수들과 간단한 사용 예제를 살펴보았습니다. 추가적인 함수들에 대한 자세한 내용은 Lodash 공식 문서를 참고하시기 바랍니다.