자바스크립트의 8가지 자료형중 하나로 키로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있어 해시, 해시테이블, 사전, 연관배열 등 자료구조 사용에 유리하다.
객체
는 중괄호 {...}를 이용해서 만들 수 있다.키(Key): 값(value)
쌍으로 구성된 "프로퍼티" 라는 것으로 구분된다.키
는 반드시 string
, 값
은 모든 자료형
이 허용 된다.📚Hint
let user = new Object(); // '객체 생성자' 문법
let user = {}; // '객체 리터럴' 문법
📌 중괄호 {...}를 이용해 객체를
선언
하는 것을 객체 리터럴(object literal)이라고도 한다.
let user = { x : 1 };
"x" in user // true
"y" in user // false
user.hasOwnProperty("x") //true
user.hasOwnProperty("y") //false
user.x !== undefined //false (효율이 더 좋음)
값
의 추가,삭제,구분📚Hint
user.isAdmin = true;
delete user.age;
let user = {
name: "John",
age: 30,
}
선언 ✨
let user = {
name: "Oonenam",
age: 76,
}
1. 값
만 추출하기
Object.values(user); // ['Oonenam', 76]
2. 키
만 추출하기
Object.keys(user); // ['name', 'age']
고유 프로퍼티 이름만 추출하려면 getOwnPropertyNames
3. 모든 개체(entries)
추출하기
Object.entries(user); // [['name', 'Oonenam'],['age', 76]]
Input: s = "codeleet", indices = [4,5,6,7,0,2,1,3]
Output: "leetcode"
[문제출처 : Leetcode 1528. Shuffle string]
var restoreString = function(s, indices) {
let obj={}
for(let i=0; i<s.length; i++){
obj[indices[i]] = s[i]
}
return Object.values(obj).join('')
};
Object.values()는
배열
로 리턴됨으로 join("")으로 다시 string을 만들어준다.
https://ko.javascript.info/object
https://leetcode.com/problems/shuffle-string