한 주의 요일을 리스트 array 로 뽑지만 만약에 "내 개인정보를 저장한다고 한다면", 어떻게 할까?
const myInfo = ["dolphin", 12, "male", true]
이렇게 배열로 내 정보를 저장한다면 대체 "dolphin" 은 무엇이고 12는 나이인지 뭔지 알 수가 없다.
그래서 이 때 object 를 쓰는데, array 와 다른 점은 object 는 각 value 에 이름 (변수) 을 줄 수 있다.
배열의 형태가 bracket 을 사용했다면 object 는 curly bracket 을 사용한다.
(이건 마치 파이썬의 dictionary 형태 비슷..한거)
object 는 label 을 내가 저장하고 싶은 데이터에 줄 수 있다.
const myInfo = {
name : "dolphin",
age : 12,
gender : "Male",
isWorking : ture,
favFood : ["김치", "미역국", "된장찌개"],
device :
[{brand:'apple',
modelname:'macbookpro'},
{brand:'samsung',
modelname:'galaxyflip2'}]
};
원하는 값에 접근하기 위해서는 다음과 같은 방법을 사용한다.
console.log(myInfo.device[1].brand);
object 에 들어가 있는 값을 수정할 수 있다.
myInfo.age = 25;
object 에 키와 밸류를 추가할 수도 있다. 그러면 출력시 마지막에 위치하게 된다.
myInfo.friend = "gorae";
중요한 점은 object 에서 myInfo 의 내부에 있는 값은 바꿀 수 있었지만 myInfo 자체를 바꾸는 것은 (update) 불가능했다. 그 이유는 const, 상수로 선언된 object 이기 때문이다.
이처럼 object 안에 array 를 넣을 수 있고, object 내의 array 내에 object 를 넣을 수 있다.
그리고 object 안에 object 를 아래와 같이 넣을 수 있다.
const doubleCurly = {
people1 : {name:"nico",age:24},
people2 : {name:"minji",age:19}
};
console.log(doubleCurly);
다음과 같이 출력된다.
{ people1: { name: 'nico', age: 24 },
people2: { name: 'minji', age: 19 } }
people1 의 name 에도 접근할 수 있게 되었다.
console.log(doubleCurly.people1.name);