[javascript]map 함수 사용 방법, 함수 결합하여 사용하는 방법 map+filter, map+reduce

0
399
javascript
javascript

javaScript에서 map 함수는 배열의 각 요소에 대해 주어진 함수를 호출하고, 그 결과로 새 배열을 생성하는 데 사용됩니다. map은 데이터를 변환하거나 가공할 때 매우 유용하게 사용될 수 있습니다. 본 글에서는 map 함수의 기본 사용법부터 시작하여, 실제 예제를 통해 사용방법을 자세히 알아보겠습니다.

const newArray = array.map((element, index, array) => {
  // 변환 로직
  return newValue;
});

숫자 배열의 각 요소 값에 2를 곱하기

const numbers = [1, 2, 3, 4];
const doubled = numbers.map(number => number * 2);

console.log(doubled); // [2, 4, 6, 8]

객체 배열에서 특정 속성 추출하기

const people = [
  { name: 'John', age: 25 },
  { name: 'Anna', age: 30 },
  { name: 'Mike', age: 28 }
];

const names = people.map(person => person.name);

console.log(names); // ['John', 'Anna', 'Mike']

배열의 요소를 이용해 새로운 객체 배열 생성하기

const numbers = [1, 2, 3];
const squaredInfo = numbers.map(number => ({ number: number, squared: number * number }));

console.log(squaredInfo);
// [
//   { number: 1, squared: 1 },
//   { number: 2, squared: 4 },
//   { number: 3, squared: 9 }
// ]

map 함수는 단순 배열 변환뿐만 아니라, 조금 더 복잡한 데이터 가공에도 유용합니다. 예를 들어, 배열의 요소를 기반으로 새로운 배열을 생성하는 동시에, 특정 조건에 따라 필터링을 수행하고 싶다면 map과 filter 함수를 함께 사용할 수 있습니다.

map과 filter 결합하기

const people = [
  { name: 'John', age: 25 },
  { name: 'Anna', age: 30 },
  { name: 'Mike', age: 28 }
];

const adults = people
  .filter(person => person.age >= 30)
  .map(person => person.name);

console.log(adults); // ['Anna']

map과 reduce 결합하기

map 함수로 각 사람의 나이만으로 구성된 배열을 만든 다음, reduce 함수로 모든 나이의 합계를 계산합니다.

const people = [
  { name: 'John', age: 25 },
  { name: 'Anna', age: 30 },
  { name: 'Mike', age: 22 }
];

const totalAge = people.map(person => person.age).reduce((acc, age) => acc + age, 0);

console.log(totalAge); // 77

map과 sort 결합하기

map 함수로 이름만 추출한 배열을 만든 후, sort 함수로 이름을 알파벳 순으로 정렬합니다.

const people = [
  { name: 'John', age: 25 },
  { name: 'Anna', age: 30 },
  { name: 'Mike', age: 22 }
];

const sortedNames = people.map(person => person.name).sort();

console.log(sortedNames); // ["Anna", "John", "Mike"]