선언 및 초기화

//선언후, 초기화 방법
let dict1 = {}
dict1["apple"] = "사과";
dict1.orange = "오렌지";
console.log(dict1);

//변수 선언후, 변수명,값 으로 초기화 방법
let country = "한국";
let city = "서울";
let dict2 = {country, city};
console.log(dict2);

//생성 시 초기화 방법
let dict3 = {"apple":"사과", "orange":"오렌지"};
console.log(dict3);

결과물은 아래와 같음

 

키 사용

//딕셔너리 추가 및 데이터 활용
let dict = {"apple":"사과", "orange":"오렌지"};
dict.banana = "바나나";		//"banana" 추가
dict["melon"] = "메론";		//"melon" 추가

console.log(dict);			//딕셔너리 전체 출력
console.log(dict.apple);	//dict의 apple 참조
console.log(dict["melon"]);		//dict의 melon 참조
console.log(Object.keys(dict));		// 키 값 전부 출력
console.log(Object.keys(dict)[2]);		//키 값 배열 참조

결과물은 아래과 같이 해당 키의 값이 출력됨

 

키 분해하기 (변수에 저장)

기본 분해, 다른 이름의 변수에 분해

let dictionary = {name:"Tom", "age":28, "country":"Korea"}  //키값은 ""으로 감싸지 않아도됨

// 기본적인 키 분해 (변수에 저장)
let {name, age} = dictionary;     //변수 name, age 생성하며, dictionary의 name, age 값을 저장함
console.log(name);      //"Tom" 출력,  dictionary의 name값
console.log(age);       //28 출력,  dictionary의 age값

// 다른이름으로 키 분해  (다른이름의 변수에 저장)
let {country:nationality} = dictionary;      //다른이름(nationality)으로 dictionary의 country값 저장
console.log(nationality);       //"Korea 출력,  dictionary의 country값

결과

기본값 지정 분해(없을경우 생성)

// 지정값 키 분해 (존재하지 않으면 지정값을 변수에 저장)
let dictionary = {name:"Tom", "age":28, "country":"Korea"}  //키값은 ""으로 감싸지 않아도됨

let {name = "James", gender = "남성"} = dictionary;     //변수 name, gender 생성하며, dictionary의 name, gender 값을 저장함, 단 없을경우 지정된 값으로 초기화
console.log(name);      //"Tom" 출력,  dictionary의 name값 (name 키값이 없는경우 James로 대체)
console.log(gender);       //남성 출력,  지정된 초기값 "남성" 출력  (dictionary에 존재하지 않는 키, 지정값으로 초기화됨)

결과

나머지 분해(지정하지 않은 나머지도 생성)

// 나머지 키 분해 (나머지도 변수에 저장)
let dictionary = {name:"Tom", "age":28, "country":"Korea"}  //키값은 ""으로 감싸지 않아도됨

let {name, ...others} = dictionary;     //변수 name,others 생성하며, others에는 name을 제외한 dictionary가 저장됨
console.log(name);      //"Tom" 출력,  dictionary의 name값
console.log(others);       //{"age":28, "country":"Korea"}출력,  dictionary의 name을 제외한 나머지값 출력

결과

 

키 체크

let dict = {"apple":"사과", "orange":"오렌지"};

//키 체크 ("키값" in 사전변수)
console.log("tiger" in dict); // false 존재하지 않음
console.log("Apple" in dict); // false 대소문자 구분
console.log("apple" in dict); // True

 

Dictionary 길이 확인, length

// Object.keys(사전).length 형태로 사용하면 길이가 반환됨

// key 값이 같은경우
let data1 = {"Name" : "Jh", "Name":"TOM", "Name":"sue"}

console.log(Object.keys(data1).length);		//길이 1 반환됨 (key값이 Name으로 동일하여 덮어씌워짐)
console.log(data1.Name);    //console.log(data1["Name"]);		//마지막에 입력된 "sue"가 출력됨


// 일반적인 사용
let data2 = {"Banana" : "바나나", "Tiger":"호랑이", "country":"국가"}

console.log(Object.keys(data2).length);		//길이 3(키 3개)이 반환됨


// 딕셔너리 배열 사용할때
let data3 = [{"Name" : "TOM", "Age" : 24}, {"Name":"Jake", "Age":25}, {'Name':"John", "Age":23}, {'Name':"James", "Age":18}];

console.log(Object.keys(data3));		//['0', '1', '2', '3'] 배열 인덱스가 출력됨
console.log(Object.keys(data3[0]));			//['Name', 'Age'] 0번 인덱스의 키가 반환됨
console.log(Object.keys(data3).length);		//4 사전 배열의 길이가 반환됨
console.log(Object.keys(data3[0]).length);		//2 0번 인덱스 사전의 키 길이가 반환됨
console.log(data3.length);			//4 배열의 길이가 반환됨

Object.keys(사전).length 형태로 키 값의 길이를 확인하는 형식

위 코드의 결과는 아래와 같음

 

+ Recent posts