Array.prototype.Map()

김효성·2022년 7월 28일
0

map() 함수 대해 알아보자.

['A','B','C','C','B','D']

위 배열에서 C를 E로 바꾸는 문제가 있었다.

굉장히 단순한 문제지만 컴퓨터 공부를 이제 시작한 사람이라면 쉽지 않다.

우선 내가 배운것들 중에서 생각을 해보았다.

  1. Replaced 함수를 이용해 푼다.
  2. Splice 함수를 이용해 푼다.
  3. Map 함수를 이용해 푼다.

[1]은 하다보니 안되는 걸 깨달았다. 왜냐? Replaced 함수는 배열에서는 사용이 불가능 했다.
그래도 코드를 짜보면

let a = "A, B, C, C, B, D"
let a2 = a.replace(/C/gi,'E')

console.log(a2) // "A, B, E, E, B, D"

// replace 함수는 (/바꾸고싶은 문자/gi,'바꿀문자') 로 이해했다.
/*정규식으로 찾으려는 문자열은 '/'로 감싸서, 파라미터로 들어가는 값이 정규식 임을 알려줍니다.
	그리고, '/' 뒤에는 'g'라는 modifier를 붙여주었습니다.
	g는 'global match'라는 의미로 사용되었습니다.
	출처: https://hianna.tistory.com/343 [어제 오늘 내일:티스토리]*/

[2]번은 가능하다. 코드를 짜보면

let a = ['A','B','C','C','B','D'] 
	
    a.splice(2,0,'E')
    a.splice(3,0,'E')
    a.splice(4,1)
    a.splice(4,1)
    
   console.log(a);	
   //결과물로  ['A', 'B', 'E', 'E', 'B', 'D' ] 출력된다.
    

사실 위에 코드처럼 짜는 방법이 아닐수도 있다. ㅎㅎ 단순 내가 아는 선에서만 작성을 해봤다.
굉장히 원초적이고 단순 정답에 짜맞춘 느낌이다. 왠지 for문을 써도 만들 수 있을 거 같다. (map까지 쓰고 다시 해봐야지~)

[3]번은 가장 쉬운 방법이 될거 같다.

map 정의

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.------->(정의는 어떤걸 봐도 항상 잘 이해가 안간다.)

map() 함수를 사용하면 각각 요소들을 내맘대로 할수있다 고 이해했다.
(빼고,더하고,바꾸고 기타 등등..)

map 구문

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

  • map은 매개변수로 callback 함수를 가진다.
  • callback함수는 3가지 인수를 가진다.
  • currentValue :처리할 현재 요소. index (Optional): 처리할 현재 요소의 인덱스.
    array (Optional) : map()을 호출한 배열.
    (callback함수가 정확히 뭔지 이해가 안간다. 이거도 이따 알아봐야지~)

예제 실습


let a = ['A','B','C','C','B','D']

let a2 = a.map((value) => {
   if(value == "C") {
    return "E";
  } 
    return value;
  
})

console.log(a2) //  [ 'A', 'B', 'E', 'E', 'B', 'D' ]

---
화살표 함수 사용!
  
let a = ['A','B','C','C','B','D']

let a2 = a.map((value) => {if(value == "C") return "E"; return value})
               
console.log(a2) // [ 'A', 'B', 'E', 'E', 'B', 'D' ]
profile
인생은 단방향 디자인 패턴 🏃

0개의 댓글