[JavaScript] map

[JavaScript] map

Python에서의 map 함수처럼 type 변환을 쉽게 쉽게 해줄 수 있는 함수가 뭐가 있을까 궁금해서 JS map MDN 문서를 살펴봤다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

이 Map은 간단히 읽어보니 Python의 dictionary와 같이 key, value로 쌍을 묶어줄 수 있는 객체(Object) 같다.

그런데 JS에서 Object와 Function의 차이는 뭘까 궁금해져서 또 object function을 검색해보니 나온 블로그

https://preamtree.tistory.com/116

1급 객체에 대해 짚고 넘어가려고 한다는 상기 블로그

...오늘은 그만 알아보자 다음 기회에

일단 내 수준에선 일단 함수랑 객체랑 같다고 생각하자...!

목표대로 map으로 다시!

메소드로써의 map도 존재해서 들어가봤다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

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

후 callback은 뭘까

JS callback도 검색

https://developer.mozilla.org/en-US/docs/Glossary/Callback_function

function greeting(name) { alert('Hello ' + name); } function UserInput(callback) { var name = prompt('Please enter your name.'); callback(name); } UserInput(greeting);

음... prompt 함수는 또 뭘까

https://developer.mozilla.org/ko/docs/Web/API/Window/prompt

window 창 등에 '사용자'가 '텍스트'를 입력할 수 있도록 안내하는 대화상자를 띄우는 함수

오케이 여기부터 거꾸로 올라가보자

function greeting(name) { alert('Hello ' + name); } function UserInput(callback) { var name = prompt('Please enter your name.'); callback(name); } UserInput(greeting);

아.. 사실 propmt 함수는 그리 critical한 것은 아니었네 암튼

이제 callback 정의를 번역해보자

A callback function is a function passed into another function as an argument, which is then invoked inside the outer function to complete some kind of routine or action.

callback 함수(function)는 다른 함수(another function, 위 예제에서는 UserInput())에게 인자(argument)로 전해지는(pass into) 함수이며, 외부 함수(outer function, 위 예제에서는 역시 UserInput()) 안에서 발동(호출)된다. 어떤 루틴(routine)이나 행동(action)을 완료하기 위해서.

그려면 지금 이 JS 코드는 UserInput 함수를 실행할 때 greeting이라는 함수를 callback 함수 인자로 받았고 prompt로 name에 사용자의 이름 등을 입력 받으면 callback 함수 인자(greeting)가 입력된 name을 가지고 가서 자신의 함수를 실행해서 alert() 호출을 통해 'Hello [사용자이름]' 이렇게 경고창이 뜰 것이다!

오케이 이제 map 메소드로 넘어오자

참고할만한 블로그

https://velog.io/@daybreak/Javascript-map%ED%95%A8%EC%88%98

상기 블로그에 의하면 filter, forEach와 같은 구문이라고 한다. 미안하지만 filter, forEach 구문을 모르는 걸... 아마 이번에 정리한 map 함수를 통해 나중에 이해하겠지

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

The map() method creates a new array populated with the results of calling a provided function on every element in the calling array.

번역 귀찮아.. 파파고를 돌렸더니

map() 메서드는 호출 배열의 모든 요소에 제공된 함수를 호출한 결과로 채워진 새 배열을 만듭니다.

중요한 것은 새 배열을 만든다!(creates a new array) 오케이

다시 번역해보자

from http://devahj.tistory.com/110 by ccl(A) rewrite - 2021-11-07 15:28:00