본문 바로가기
javaScript/JS Tutorial

map() 자바스립트

by mooyou 2022. 12. 13.
728x90
300x250

 

 

Array.prototype.map()

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

즉 배열의 각 요소에 대해 실행문을 처리하고 결과에서 새로운 배열을 구성한다. 배열안에 객체가 들어있을 경우에는 개체가 공유 된다.

 

 

문법

// Arrow function
map((element) => { /* … */ })
map((element, index) => { /* … */ })
map((element, index, array) => { /* … */ })

// Callback function
map(callbackFn)
map(callbackFn, thisArg)

// Inline callback function
map(function (element) { /* … */ })
map(function (element, index) { /* … */ })
map(function (element, index, array) { /* … */ })
map(function (element, index, array) { /* … */ }, thisArg)

 

숫자 배열을 제곱근 배열에 매핑

const numbers = [1, 4, 9];
const roots = numbers.map((num) => Math.sqrt(num));

// roots is now     [1, 2, 3]
// numbers is still [1, 4, 9]

 

 

맵을 사용해서 배열의 객체 형식 재지정

개체 배열을 가져와서 새로 형식이 변경된 새 배열 만들기

const kvArray = [
  { key: 1, value: 10 },
  { key: 2, value: 20 },
  { key: 3, value: 30 },
];

const reformattedArray = kvArray.map(({ key, value }) => ({ [key]: value }));

console.log(reformattedArray); // [{ 1: 10 }, { 2: 20 }, { 3: 30 }]
console.log(kvArray);
// [
//   { key: 1, value: 10 },
//   { key: 2, value: 20 },
//   { key: 3, value: 30 }
// ]

 

 

인수가 포함된 함수를 사용해서 숫자 배열 매핑

const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// expected output: Array [2, 8, 18, 32]

 

배열이 아닌 객체에서 map()호출

const arrayLike = {
  length: 3,
  0: 2,
  1: 3,
  2: 4,
};
console.log(Array.prototype.map.call(arrayLike, (x) => x ** 2));
// [ 4, 9, 16 ]
**는 거듭제곱 , call()은 이미 할당되어있는 다른 객체의 함수/메소드를 호출하는 해당 객체에 재할당할때 사용한다.

 

 

<p id="demo"></p>

<script>
// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);

document.getElementById("demo").innerHTML = fruits.get("apples"); //500
</script>

 

 

 

참고 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

728x90
반응형

'javaScript > JS Tutorial' 카테고리의 다른 글

[javaScript]자바스크립트 유형  (0) 2022.12.15
[javaScript] map() set() get()  (0) 2022.12.14
[javaScript]map()  (0) 2022.12.10
[javaScript]set 중복제거  (0) 2022.12.08
[javaScript]레이블(label)  (0) 2022.12.07

댓글