TIL

TIL (2024.03.19) - JavaScript 문법 (Map, Set, Array)

pitang 2024. 3. 19. 10:54
반응형

 

안녕하세요. pitang입니다.

 

어제는 문자열 오늘은 Map객체, Set객체 그리고 Array 메서드에 대해 정리하도록 하겠습니다.

 

Map

 

key, value에 해당하는 자료형태이다.

 

1. set

맵 객체.set(key, value);

let map = new Map();

map.set(1, "value1");
map.set(2, "value2");

console.log(map);
=> return Map(2) {1=>"value1", 2=>"value2");

 

 

add 형태, 값을 추가한다.

 

2. get

맵 객체.get(key);

let map = new Map();

map.set(1, "value1");
map.set(2, "value2");

console.log(map.get(2));
=> return value2

 

key에 해당하는 value를 리턴한다.

 

3. has

맵 객체.has(key);

let map = new Map();

map.set(1, "value1");
map.set(2, "value2");

console.log(map.has(2));
=> return true
console.log(map.has(3));
=> return false

 

 

key에 해당하는 값이 있는지 체크하고 true/false로 리턴한다.

 

 

4. delete

맵 객체.delete(key);

let map = new Map();

map.set(1, "value1");
map.set(2, "value2");

map.delete(2);

console.log(map.has(2));
=> return false

 

key에 해당하는 값을 제거한다..

 

5. size

맵 객체.size;

let map = new Map();

map.set(1, "value1");
map.set(2, "value2");

console.log(map.size);
=> return 2

 

map의 개수를 구한다. 함수의 형태가 아닌 것 주의 필요.

 

6. Map 객체 순환하기

for(let [key, value] of 맵 객체) {...}

let map = new Map();

map.set(1, {id:"aaa", pw:1111});
map.set(2, {id:"bbb", pw:2222});
map.set(3, {id:"ccc", pw:3333});

for(let[key, value] of map) {
	console.log(value.id);
}
=> return
aaa
bbb
ccc

 

 

 

7. Map 정렬하기

let arr = [...맵 객체];
arr.sort(...);
let newMap = new Map(arr);

let map = new Map();

map.set(1, {id:"aaa", pw:1111});
map.set(2, {id:"bbb", pw:2222});
map.set(3, {id:"ccc", pw:3333});

let arr = [...map];
arr.sort((a,b) => b[1].pw-a[1].pw);

let newMap = new Map(arr);

console.log(newMap);
=> return
Map(3) {
  3 => { id: 'ccc', pw: 3333 },
  2 => { id: 'bbb', pw: 2222 },
  1 => { id: 'aaa', pw: 1111 }
}

 

형태=> 배열로 만들어서 정렬하고 다시 Map 객체로 바꾸는 것이 포인트이다.

 

Set

 

중복을 허용하지 않는 value를 가진 자료구조이다.

 

1. add

셋 객체.add(value);

let set = new Set();

set.add("value1");
set.add("value2");

console.log(set);
=> return Set(2) {"value1", "value2"}

 

2. has

셋 객체.has(value);

let set = new Set();

set.add("value1");
set.add("value2");

console.log(set.has("value1");
=> return true
console.log(set.has("value3");
=> return false

 

3. delete

셋 객체.delete(values);

let set = new Set();

set.add("value1");
set.add("value2");

set.delete("value2");

console.log(set.has("value2"));
=> return false

 

4. size

셋 객체.size;

let set = new Set();

set.add("value1");
set.add("value2");

console.log(set.size);
=> return 2

 

Map 객체와 같이 함수 형태가 아니다!

 

5. Set 객체 순환하기

for(let value of 셋 객체) {...}

let set = new Set();

set.add({id:"aaa", pw:1111});
set.add({id:"bbb", pw:2222});
set.add({id:"ccc", pw:3333});

for(let value of set) {
	console.log(value.id);
}
=> return
aaa
bbb
ccc

 

6. Set 정렬하기

let arr = [...셋 객체];
arr.sort(...);
let newSet = new Set(arr);

let set = new Set();

set.add({id:"aaa", pw:1111});
set.add({id:"bbb", pw:2222});
set.add({id:"ccc", pw:3333});

let sortArr = [...set];
sortArr.sort((a,b) => b.pw-a.pw);

let newSet = new Set(sortArr);
console.log(newSet);
=> return
Set(3) {
  { id: 'ccc', pw: 3333 },
  { id: 'bbb', pw: 2222 },
  { id: 'aaa', pw: 1111 }
}

 

Map 객체와 마찬가지이다. 배열로 만들어 정리하고 다시 Set으로 가져온다.

 

Array

 

1. forEach

배열.forEach((element, index) => {...});

let arr = [{id:"aaa", pw:1111},{id:"bbb", pw:2222},{id:"ccc", pw:3333}];

arr.forEach((element, index) => {
	console.log("element=", element);
    console.log("index=", index);
}
=> return
element={id:"aaa", pw:1111}
index=0
element={id:"bbb", pw:2222}
index=1
element={id:"ccc", pw:3333}
index=2

 

2. map

대체적으로 map은 배열에서 어떤 과정을 거친 배열을 만들어낼 때 많이 사용한다.

순환하고 있는 요소를 리턴 값과 바꾼다?

배열.map((element,index)=> {
	...
    return 만든 배열 값
})

let arr = [{id:"aaa", pw:1111},{id:"bbb", pw:2222},{id:"ccc", pw:3333}];

let mapArr = arr.map((element, index) => {
	element.pw = element.pw*2;
    return element;
}
=> return
[
	{id:"aaa", pw:2222}
    {id:"bbb", pw:4444}
    {id:"ccc", pw:6666}
]

 

3. filter

배열.filter((element,index)=> {
	...조건
    return true;
    ...조건
    return false;
})

let arr = [{id:"aaa", pw:1111},{id:"bbb", pw:2222},{id:"ccc", pw:3333}];

let filterArr = arr.filter((element, index) => {
	if(element.pw>2000) return true;
    else return false;
}
console.log(filterArr);
=> return
[
    {id:"bbb", pw:2222}
    {id:"ccc", pw:3333}
]

 

4. reduce

함수를 실행하고 하나의 결과값을 반환한다.

배열.reduce((acc, cur)=> {
    return 변수로 바꿀 값
}, 초기값)

let arr = [{id:"aaa", pw:1111},{id:"bbb", pw:2222},{id:"ccc", pw:3333}];

let sumArr = arr.reduce((a, b) => {
    return a+b.pw;
}, 0);
console.log(sumArr);
=> return 13332

 

 

 

 

 

감사합니다.

 

728x90
반응형