선언 및 초기화
//선언후, 초기화 방법
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 형태로 키 값의 길이를 확인하는 형식
위 코드의 결과는 아래와 같음
'개발 > Node.js, javascript' 카테고리의 다른 글
Node.js 자동 재실행 forever 명령어 사용법 정리 (0) | 2020.08.31 |
---|