[javascript] Lodash의 순회 함수들과 사용 예제

Lodash는 JavaScript로 작성된 유용한 유틸리티 라이브러리입니다. Lodash를 사용하면 배열이나 객체를 쉽게 순회하고 조작할 수 있습니다. 이번 글에서는 Lodash의 주요 순회 함수들과 그 사용 예제를 알아보겠습니다.

1. _.forEach

_.forEach 함수는 배열이나 객체의 각 요소를 순회하면서 콜백 함수를 실행합니다. 이 함수는 원본 배열이나 객체를 변경하지 않고 순회만 수행합니다.

const array = [1, 2, 3, 4, 5];
const object = { a: 1, b: 2, c: 3 };

_.forEach(array, (value, index) => {
  console.log(`array[${index}] = ${value}`);
});

_.forEach(object, (value, key) => {
  console.log(`object[${key}] = ${value}`);
});

실행 결과:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
object[a] = 1
object[b] = 2
object[c] = 3

2. _.map

_.map 함수는 배열이나 객체의 각 요소를 순회하면서 콜백 함수를 실행하고, 해당 요소를 변형한 결과를 새로운 배열로 반환합니다.

const array = [1, 2, 3, 4, 5];
const object = { a: 1, b: 2, c: 3 };

const mappedArray = _.map(array, (value) => value * 2);
const mappedObject = _.map(object, (value) => value * 2);

console.log(mappedArray); // [2, 4, 6, 8, 10]
console.log(mappedObject); // [2, 4, 6]

3. _.filter

_.filter 함수는 배열이나 객체의 각 요소를 순회하면서 콜백 함수를 실행하고, 조건을 만족하는 요소만을 모아 새로운 배열로 반환합니다.

const array = [1, 2, 3, 4, 5];
const object = { a: 1, b: 2, c: 3 };

const filteredArray = _.filter(array, (value) => value % 2 === 0);
const filteredObject = _.filter(object, (value) => value % 2 === 0);

console.log(filteredArray); // [2, 4]
console.log(filteredObject); // [2]

4. _.reduce

_.reduce 함수는 배열이나 객체의 각 요소를 순회하면서 콜백 함수를 실행하고, 하나의 결과값을 반환합니다. 이 함수는 초기값을 지정할 수 있으며, 각 순회 단계에서 콜백 함수의 반환값을 이어서 다음 순회에 사용합니다.

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

const sum = _.reduce(array, (result, value) => result + value, 0);
console.log(sum); // 15

5. _.forEachRight, _.mapValues, _.filter, _.reduceRight

_.forEachRight, _.mapValues, _.filter, _.reduceRight 함수들은 각각 _.forEach, _.map, _.filter, _.reduce와 동일한 기능을 수행하지만, 순회 순서가 거꾸로 이루어집니다.

이외에도 Lodash에는 다양한 순회 함수들이 있으며, 각 함수의 자세한 사용법은 공식 문서를 참고하시기 바랍니다.

참고 자료