Home javascript 내장 함수 (문자열 다루기, map, filter, reduce)
Post
Cancel

javascript 내장 함수 (문자열 다루기, map, filter, reduce)

이 포스트는 엘리스 AI 트랙 4기 강의를 듣고 정리한 내용입니다.

문자열 조작하기

문장에서 각 알파벳이 몇개 존재하는지 출력하는 알고리즘을 구현해 보았다. Javascript의 문자열을 조작할 수 있는 내장함수를 사용했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const stringControll = "hi my name is marshmello!!";

const alpha_count = stringControll
  .trim()
  .split("")
  .filter((alpha) => alpha >= "a" && alpha <= "z")
  .reduce((map, char) => {
    if (!map[char]) {
      map[char] = 0;
    }
    map[char]++;
    return map;
  }, {});

console.log(alpha_count);

trim()

trim()은 문자열의 앞, 뒤에 공백이 존재할 경우 공백을 없애주는 함수이다.

split()

split()은 문자열에서 지정된 구분자를 사용해서 여러개의 문자열로 나눠 배열을 반환해 준다.

배열 다루기 (filter, reduce, map)

filter()

filter()는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열을 반환해 준다.

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

const filter_a = a.filter((v) => v % 2 == 0);

filter()를 사용해 배열 안에서 짝수인 값만 반환하는 코드이다. v는 배열의 인자를 차례대로 돌고, =>뒤에는 조건이 들어간다. 조건이 맞는 값들만 새로운 배열에 저장된다.

reduce()

1
arr.reduce(callback[, initialValue])

reducer()의 구조는 callbackinitialValue로 구성되며, callback에는 네 가지의 매개변수가 있다.

  • accumulator 누산기는 콜백 함수의 반환값을 누적한다. 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값이다.
  • currentValue 처리할 현재 요소이다.
  • currentIndex 처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작한다.
  • array reduce()를 호출한 배열이다.
  • initialValue callback의 최초 호출에서 첫 번째 인수에 제공하는 값이다. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용한다. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생하게 된다.

currentValue, array, initialValue는 필수 인자는 아니다.

1
2
3
4
5
6
7
8
const a = [1, 2, 3, 4, 5];

// reducer 함수 정의
const reducer = (prev, curr) => prev + curr;
const reduce_result = a.reduce(reducer);

// reduce 함수 내에서 reducer 정의
const reduce_inner = a.reduce((prev, curr) => prev + curr);

reduce()는 배열의 각 요소에 대해 주어진 reducer함수를 실행하고, 하나의 결과값을 반환한다. reducer함수는 따로 함수로 선언해서 사용할 수도 있고, reduce()내에서 정의할 수도 있다.

map()

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

const map_a = aa.map((v) => v * 2);
console.log(map_a); // [ 2, 4, 6, 8, 10 ]

map()메서드는 배열 내의 모든 요소 각각에 대해 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.

1
arr.map(callback(currentValue[, index[, array]])[, thisArg])

callback()은 세 가지 인자를 가진다.

  • currentValue: 처리할 현재 요소
  • index: 처리할 요소의 인덱스
  • array: map()을 호출한 배열
  • thisArg: callback을 실행할 때 this로 사용되는 값

indexarray, thisArg는 필수 요소는 아니다. map()은 배열의 각 요소에 대해 실행한 callback의 결과를 모은 새로운 배열을 반환한다.

This post is licensed under CC BY 4.0 by the author.

deque, 우선순위 큐 (Python Algorithm interview 10장)

Hash map (Python Algorithm interview 11장)