바닐라JS - Datatype 의 정렬 with Object.

도토리정·2020년 8월 4일

object

한 주의 요일을 리스트 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);
profile
화이팅!

0개의 댓글