[javascript] Underscore.js의 사용 방법은 어떻게 되나요?

Underscore.js는 JavaScript의 유틸리티 라이브러리로, 함수형 프로그래밍과 관련된 다양한 기능을 제공합니다. 아래는 Underscore.js의 몇 가지 주요 기능과 사용 방법에 대한 예시입니다.

  1. 배열 조작(Array Manipulation):
    • _.each: 배열의 각 요소에 대해 함수를 실행합니다.
    • _.map: 배열의 각 요소에 대해 함수를 실행한 결과를 새로운 배열로 반환합니다.
    • _.filter: 배열에서 조건을 만족하는 요소들로 이루어진 배열을 반환합니다.
const arr = [1, 2, 3, 4, 5];

_.each(arr, (item) => {
  console.log(item);
});

const squared = _.map(arr, (item) => {
  return item * item;
});

const evenNumbers = _.filter(arr, (item) => {
  return item % 2 === 0;
});
  1. 객체 조작(Object Manipulation):
    • _.keys: 객체의 키들로 이루어진 배열을 반환합니다.
    • _.values: 객체의 값들로 이루어진 배열을 반환합니다.
    • _.extend: 여러 개의 객체를 병합하여 반환합니다.
const obj = {
  name: 'John',
  age: 25,
  city: 'New York'
};

const keys = _.keys(obj);
const values = _.values(obj);

const newObject = _.extend(obj, {
  occupation: 'developer'
});
  1. 함수형 프로그래밍(Functional Programming):
    • _.reduce: 배열의 요소를 하나씩 순회하면서 누적값을 계산합니다.
    • _.compose: 함수들을 합성하여 새로운 함수를 생성합니다.
    • _.debounce: 함수를 지연하여 호출되도록 합니다.
const sum = _.reduce(arr, (acc, curr) => {
  return acc + curr;
}, 0);

const multiplyAndSquare = _.compose((x) => x * x, (x) => x * x);

const debouncedFn = _.debounce(() => {
  console.log('Debounced function called');
}, 1000);

위의 예시는 많은 기능 중 일부에 불과하며, Underscore.js는 더 다양한 유틸리티 기능을 제공합니다. 더 자세한 내용은 Underscore.js 공식 문서를 참고하세요.