728x90
300x250
SMALL
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
반응형
LIST
'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 |
댓글