Javascript 리스트 & 딕셔너리

리스트 & 딕셔너리

자바스크립트에서는 리스트와 딕셔너리 대신 배열과 객체를 사용합니다. 배열은 순서가 있는 값들의 집합이며, 객체는 이름과 값이 쌍으로 이루어진 속성들의 집합입니다.

리스트: 순서를 지켜서 가지고 있는 형태이며, 아래의 형태를 가지고 있습니다.

let a_list = []  //  a_list 라는 변수와 "[ ]"안에 있는 내용과 동일함을 선언 할 수 있습니다. 변수 이름은 역시 아무렇게나 가능!

// 또는,

let b_list = [1,2,'hey',3] // 로 선언 가능

//숫자와, 문자의 구별은  "" 를 통해 구별한다. ""로 감싸여있지 않으면 숫자로 인식하며 관련된 부분을 확인하는 방법은 아래 코드로 확인할 수 있다.
//console.log(typeof "9")
//console.log(typeof 9)

b_list[1] // 2 를 출력
b_list[2] // 'hey'를 출력

// 리스트에 요소 넣기
b_list.push('헤이')
b_list // [1, 2, "hey", 3, "헤이"] 를 출력

// 리스트의 길이 구하기
b_list.length // 5를 출력

딕셔너리: 키(key)-밸류(value) 값의 묶음

let a_dict = {}  // 딕셔너리 선언. 변수 이름은 역시 아무렇게나 가능!

// 또는,

let b_dict = {'name':'Bob','age':21} // 로 선언 가능
b_dict['name'] // 'Bob'을 출력
b_dict['age'] // 21을 출력

b_dict['height'] = 180 // 딕셔너리에 키:밸류 넣기
b_dict // {name: "Bob", age: 21, height: 180}을 출력

리스트와 딕셔너리의 조합

names = [{'name':'bob','age':20},{'name':'carry','age':38}]

// names[0]['name']의 값은? 'bob'
// names[1]['name']의 값은? 'carry'

new_name = {'name':'john','age':7}
names.push(new_name)

// names의 값은? [{'name':'bob','age':20},{'name':'carry','age':38},{'name':'john','age':7}]
// names[2]['name']의 값은? 'john'

순서를 표시할 수 있고, 정보를 묶을 수 있습니다.

앞에서 언급한 <스파르타과일가게>가 정말 잘 되어서 전국에서 손님이 찾아오고 있습니다. 대기표를 작성하기 위해서 온 순서대로 이름, 휴대폰 번호를 적도록 하였는데요. 변수만을 사용한 모습은 다음과 같습니다.

let customer_1_name = ‘김스파’;
let customer_1_phone = ‘010-1234-1234’;
let customer_2_name = ‘박르탄’;
let customer_2_phone = ‘010-4321-4321’;
…(알아보기 힘듭니다.)

딕셔너리를 활용한다면 다음과 같이 고객 별로 정보를 묶을 수 있습니다.

let customer_1 = {‘name’: ‘김스파’, ‘phone’: ‘010-1234-1234’};
let customer_2 = {‘name’: ‘박르탄’, ‘phone’: ‘010-4321-4321’};

그리고 순서를 나타내기 위해 리스트를 사용하면, 이렇게나 깔끔해집니다.

let customer = [ {‘name’: ‘김스파’, ‘phone’: ‘010-1234-1234’},
{‘name’: ‘박르탄’, ‘phone’: ‘010-4321-4321’} ]

보기에도 깔끔해지고, 다루기도 쉬워지고, 고객이 새로 한 명 더 오더라도 .push 함수를 이용해 간단하게 대응할 수 있습니다.