map() 함수 대해 알아보자.
['A','B','C','C','B','D']
위 배열에서 C를 E로 바꾸는 문제가 있었다.
굉장히 단순한 문제지만 컴퓨터 공부를 이제 시작한 사람이라면 쉽지 않다.
우선 내가 배운것들 중에서 생각을 해보았다.
[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() 함수를 사용하면 각각 요소들을 내맘대로 할수있다 고 이해했다.
(빼고,더하고,바꾸고 기타 등등..)
arr.map(callback(currentValue[, index[, array]])
(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' ]