[javascript] Set 객체 (+배열로 반환) / Map 객체
by mini_min✔️ Set 객체
: 중복을 허용하지 않는다. 중복 안되는 프로그램 짤 때 유용함!
var set = new Set(); // 중복 허용 안함
set.add("java");
set.add("oracle");
set.add("html");
set.add("css");
set.add("java");
set.add("spring");
console.log(set.size); // 개수 5
console.log(set.has('html'));
set.delete('spring'); // 삭제
💡 has : item 의 존재 유무 확인
indexOf 보다 연산이 더 빠르다~
💡 배열에서 삭제하면, 요소 수가 안줄어든 것과 달리, set 은 delete 시 요소 수가 줄어든다!
-- 처음부터 순회 (for of 문으로)
//처음부터 순회
for(let a of set){
console.log(a);
}
📓 set 을 배열로 반환하기
Array.from ⭐
var arr = Array.from(set); // 어레이 객체로 반환함
console.log(arr.join());
💡Array 객체로 반환한다. from 이용!
📓 배열을 set으로 반환하기
var set2 = new Set([1,2,3]);
console.log(set2); // {1,2,3}
✔️ set의 모든 요소 제거하기
set2.clear();
console.log(set2.size); // 0
✔️ set 에 객체 값을 저장한다면?
: set에 객체를 add 하는 것은, 값이 아닌 주소를 저장하는 것이다.
var set3 = new Set();
var obj = {subject:'java', score:100}; //객체
set3.add({subject:'java', score:100}); //객체는 값이 아닌 주소가 저장됨
set3.add({subject:'java', score:100}); //위의 객체와는 다른 객체
💡 위에 두 개는 동일해보이지만, 서로 다른 객체로 저장된 것이다. (주소 1, 주소 2가 저장된 것)
set3.add(obj); / set3.add(obj); 는 하나로 취급
✔️ Map 객체
: 키와 값으로 이루어진 객체
var map = new Map();
map.set("java", 100); // 키, 값
map.set("oracle", 90);
map.set("html", 80);
map.set("spring", 90);
map.set("oracle", 80); // 키가 중복이면 이전 데이터에 최신 데이터를 덮는다.
💡 키가 중복이면, 이전 데이터에 최신 데이터를 덮는다.
console.log(map.size); // 4
console.log(map.has("css") ); // false. 키 존재여부
console.log(map.get("oracle")); //80. 키에 대한 값을 반환
//map 은 하나씩 값을 가져올 수 있다.
console.log(map.get("css")); //undefined
map.delete("spring"); // 키와 값을 삭제
💡 has : 키 존재 여부 확인
get : 키가 일치하는 값을 반환한다.
만약, 값이 없으면 undefined 를 반환한다.
delete : 키와 값을 삭제
📓 map 을 배열로 반환하기
-- for of 를 이용하면 배열로 반환할 수 있다!
for(let [key, value] of map) {
console.log(key + ":" + value);
}
-- forEach 를 이용하면 배열로 반환할 수 있다!
⭐ 첫번째가 value, 두번째가 key
//첫번째가 value!! 두번째가 key
map.forEach((value, key) => console.log(key + ":" + value) );
const map2 = new Map(
[
["01", "java"],
["02", "spring"],
["03", "oracle"],
["01", "html"] // 키가 같으면 덮는다.
]
);
💡 키가 같으면 데이터를 덮는다.
'JavaScript' 카테고리의 다른 글
[javascript] JSON 객체 (0) | 2022.09.21 |
---|---|
[javascript] apply(), call() ⭐⭐ / arguments / bind() (1) | 2022.09.21 |
[javascript] 배열 정렬 / forEach() / map() / filter() (1) | 2022.09.21 |
[javascript] 배열 관련 메소드 - indexOf(), join(),reverse() (0) | 2022.09.21 |
[javascript] 배열 - 새로운 요소 추가 / 삭제 (1) | 2022.09.21 |
블로그의 정보
개발자 미니민의 개발로그
mini_min