Array와 Object는 글을 작성하여 이번글에서는 Map과 Set에 대해 알아보자.
Map에서는 key값을 다양하게 지정할 수 있다. Boolean Type도 가능하다.
map.set(true, "bool_type");
Object에서는 값을 추가 / 삭제를 하고자 하면
Object[key] = "value"
와 같은 방법으로 동등 연산자로 값을 추가하거나 수정할 수 있다. 하지만 Map에서는 불가능하다.
let map = new Map();
// 배열을 인자로 넣어 생성도 가능하다.
// 이렇게 되면 key : strawberry value : 50 이런식으로 생성이 된다.
let recipe_juice2 = new Map([
["strawberry", 50],
["banana", 100],
["ice", 150],
]);
Map.size
let recipe_juice2 = new Map([
["strawberry", 50],
["banana", 100],
["ice", 150],
]);
recipe_juice2.size // 3
Map.set(key, value)
map.set(123, 789).set(false, "bool_type").set("fruit", "banana");
Map.get(key)
recipe_juice2.get("strawberry");
Map.delete(key)
recipe_juice2.delete("strawberry")
Map.clear()
recipe_juice2.clear()
let recipe_juice2 = new Map([
["strawberry", 50],
["banana", 100],
["ice", 150],
]);
console.log(recipe_juice2.has("strawberry")); // output : true
recipe_juice2.keys();
// key값 출력
for (let item of recipe_juice.keys()) {
console.log(item);
}
recipe_juice2.values()
// value 출력
for (let itme of recipe_juice.values()) {
console.log(itme);
}
for .. in은 요소를 출력
for .. of는 키를 출력
recipe_juice2.entries()
for문으로도 출력이 가능하다.
// 위와 동일
for (let entity of recipe_juice.entries) {
console.log(entity);
}
let recipe_juice_obj = Object.fromEntries(recipe_juice);
// map을 객체로 변경하는데 [key, value] 형태로 변경하기
let recipe_juice_kv = Object.entries(recipe_juice_obj);
반대로, Object를 Map으로 변환할 수 있다.
let recipe_juice_map = new Map(recipe_juice_kv);
let set = new Set();
let num = new Set([1, 2, 3, 4, 5]);
let str = new Set("HELLO!");
console.log(Set.size)
Set.add(value)
let num = new Set([1, 2, 3, 4, 5]);
num.add(6);
num.add(5); // 이 경우에는 이미 num에 5라는 값이 있기 때문에 추가가 되어도 중복값이기 중복제거가 된다.
let num = new Set([1, 2, 3, 4, 5]);
num.delete(1);
num.clear()
num.has(1) // true
console.log(num.keys()); // output : [Set Iterator] { 1, 2, 3, 4, 5 }
이렇게 value와 key가 같다는 걸 알 수 있다.
console.log(num.values()); // output : [Set Iterator] { 1, 2, 3, 4, 5 }
console.log(num.entries())
// output
[Set Entries] { [ 1, 1 ], [ 2, 2 ], [ 3, 3 ], [ 4, 4 ], [ 5, 5 ] }