1.객체의 키를 변수로 접근하기
- 객체의 키를 사용해서 특정 키의 값을 가져오는게 가능하다.
- 반대로 객체에 특정 키를 만들고 값을 할당하는것도 가능하다.
information[verb] = project
information.developes = 'facebook'
- B의 방식으로도 할당이 가능하지만, 이 경우 키와 값은 항상 정해져 있다.
- A의 방식으로 할당하면 변수가 가지는 값에 따라 다른 키와 값을 가지는게 가능해진다.
2.객체 순회하기
- 객체도 배열처럼 순회가 가능하다.
- 다만 명확하게 정해진 순서가 없기 때문에, 어떤 순서에 따라 객체의 키에 접근하게 될지 알 수 없다. (= 순서가 보장되지 않은 순회")
3. Object.keys()
- 'Object.keys' 메소드는 어떤 객체가 가지고 있는 키들의 목록을 배열로 리턴하는 메소드이다. 객체의 내장 메소드가 아니라 객체 생성자인 Object가 직접 가지고 있는 메소드이다.
const obj = {
name: 'melon',
weight: 4350,
price: 16500,
isFresh: true
}
Object.keys(obj)
- Object.keys메소드가 리턴하는 값은 배열이기 때문에 이걸로 반복문을 사용할 수 있다.
const keys = Object.keys(obj)
for (let i = 0; i < keys.length; i++) {
const key = keys[i]
const value = obj[key]
console.log(value)
}
- ES6 문법에서는 Object.keys 외에도 마찬가지로 Object생성자의 메소드인 Object.values, Object.entries이 추가 됨
- Object.entries는 객체의 키와 값의 쌍으로 이루어진 길이 2짜리 배열로 이루어진, 배열을 리턴한다.
4.for-in
- 객체를 순회하는 두번째 방법은 for-in문이다.
- 반복문인 for문과 같은 종류의 문법이지만, 객체와 배열을 위해 특별히 존재하는 ,ES6에서 추가된 문법
- 객체 순회 뿐만 아니라 일반적인 배열을 순회할때도 아주 유용하다.
for (let i in arr) {
console.log(i)
console.log(arr[i])
}