오늘은 객체를 배워볼거다!
배열에서는 인덱스와 인덱스마다 그에 맞춘 Value 값을 설정했음. 객체는 인덱스에 Key
라는 값을 따로 지정해 불러오게끔 데이터를 지정함
delete obj["Key"]
Dot은 편하지만 Key 값이 동적으로 변할 때, 즉 Key 값이 변수로서 값이 재할당될 때 사용하지 못한다. 그래서 그럴 땐 Bracket을 써야함
Key 값이 동적일 때(변할 때)는 코플릿 1번을 보면 잘 나와있음
따옴표나 그런 거 없이 브라켓 안에 써주면 변수 취급을 받음
객체와 키를 입력받아 키에 해당하는 값을 리턴하는 함수 만들기!
function getProperty(obj, property) {
return obj[property]
}
객체 데이터를 불러올 때 브라켓 안에 따옴표(백틱)는 필수임! 배열의 브라켓은 숫자여서 따옴표를 붙여주지 않았고, 객체의 브라켓은 문자 데이터 그 자체를 가져와야하기에 따옴표를 붙인다!
let tweet = {
people: "Rhino",
content: "배고파"
}
tweet["content"]
// "배고파", 따옴표를 작성해 문자열 자체가 됐음, 즉 obj 안 content 자체를 불러옴
tweet[content]
// undefined, 따옴표를 작성하지 않아 변수 자체를 불러오게 됐음
const content = "people"
tweet[content]
// 이런 식으로 작성해야 동작됨
- 전에 배웠던 of 연산자랑 달리 객체, 배열에 모두 쓸 수 있음! 근데 객체에 많이 쓰임
- 기본적으로 Key in objVariable로 쓰임, 불린 데이터를 반환함
- for (KeyValue in obj)로 반복문에도 많이 쓰임, key 값으로 반복됨
코플릿에서 배워서 여기에 정리하기!
순회한다는 뜻은 객체가 인덱스 값을 가지고 배열처럼 순서를 가져 순회한다는 뜻임(.Map
, Set
, Array
등)
const obj = {
name: 'Rhino',
weight: 71,
isHuman: true
}
const keyss = Object.keys(obj); // ['name', 'weight', 'isHuman']
for (let i = 0; i < keyss.length; i++) {
// 각각의 키를 이용한 반복문 사용 가능
const key = keyss[i]; // 각각의 키
const value = obj[key]; // 각각의 키에 해당하는 각각의 값
console.log(value);
}
Object.values(obj) // ['Rhino', 71, true]
Object.entries(obj)
// [['name', 'Rhino'], ['weight', 71], ['isHuman', true]]
객체를 입력받아 number 타입의 값을 갖는 속성을 모두 제거
1. 반복문 + in 연산자를 통해 모든 Key 값 탐색
2. 찾은 Key로 Value를 하나씩 반복해 typeof
로 숫자 고르기
3. delete obj[Value]
로 없애기
for (i in obj) {
if (typeof obj[i] === 'number') {
delete obj[i];
}
⚠️참고 : 배열, 객체는 한뿌리라 다 'object'
라고 뜸, 그래서 그럴땐 Array.isArray(arr)
라고 따로 써줘야함
코플릿 20번 21번 무조건 복습 후 복습!! 객체의 활용을 볼 수 있다!!