1-1 dot notation
객체이름과 key
사이에 .
를 사용하는 방법으로 주로 쓰이는 방법이다.
1-2. bracket notation
key
값으로 변수를 입력할 수 있다. 이 때는 key
를 따옴표('' , "" ,``)으로 감싸야 한다.
< 호출법 예시 >
let obj = {
cat : "Meow",
dog : "Woof"
}
let dog = "cat";
console.log(obj.dog) // "Woof"
console.log(obj[dog]) // "Meow"
※ dot/bracket notation
을 사용하여 값을 추가하거나 삭제할 수도 있다.
< 데이터 추가/삭제 >
let obj = {
a : "cat",
b : "dog"
}
< 추가 >
obj.c = "cow"
obj["cow"] = "cow"
=> 추가된 값이 반환된다.
< 삭제 >
delete obj.a
delete obj["a"]
=>
in 연산자를 이용하면 해당하는 키가 있는지 확인할 수 있다. 반환값은 boolean
으로 반환딘다.
let tweet = {
writer : "stevelee",
createdAt : "2019-09-10 12:03:33",
}
"content" in tweet; // true
"update" in tweet; // false
const arr = [1,2,"cat",{a:1,b:2}];
for(let el of arr) {
console.log(el);
}
/*
1
2
3
cat
{a:1,b:2}
*/
=> 배열의 모든 요소가 el에 순차적으로 들어간다.
const obj = {a:1,b:[1,2,3],c:"cat"};
for (let prop in obj) {
console.log(prop)
}
/*
a
b
c
*/
=> 객체의 key가 prop에 순차적으로 들어간다.
다음의 코드처럼 조건문에도 사용할 수 있다.
function extent(obj1,obj2) {
for (let prop in obj2) {
if(!(prop in obj1)) {
obj1[prop] = obj2[prop];
}
}
}
function countAllCharacters(str) {
const obj = {};
for (let el of str) {
obj[el] = (obj[el] || 0) + 1;
}
return obj;
}
단축평가를 사용해서 obj
에 이미 있는 el
이라면 기존의 number
값에 +1
을 해주고 새로운 el
이라면 0
으로 스타트해서 +1
을 해준다.