[JS] 객체 요소 추가/삭제 , Object.entries Object.keys Object.values Object.assign , typeof , instanceof , Array.isArray
# 객체 요소 삭제
삭제 → delete 객체.키
추가 → 객체[새로운Key] = ‘값’
삭제 → delete 객체.키
추가 → 객체[새로운Key] = ‘값’
찾기 → 객체.hasOwnProperty(키) // true or false
const a = { ‘a’ :1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5 }
console.log(a) // {a: 1, b: 2, c: 3 , d: 4, e: 5} 출력
const a = { ‘a’ :1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5 }
console.log(a) // {a: 1, b: 2, c: 3 , d: 4, e: 5} 출력
delete a.c;
console.log(a) // {a: 1, b: 2, d: 4, e: 5} 키값 ‘c’ 항목이 삭제됨
# 객체 요소 추가
a[‘f] = 7 // 추가
console.log(a) // {a: 1, b: 2, d: 4, e: 5, f: 7} // f:7 추가됨
# 대표적인 유사배열 객체 함수의 arguments, HTMLCollection, NodeList 등이 있음
# Object.entries(객체) → return : key ,value 타입의 배열로 만듬
const a = [1,2,3,4,5]
console.log(a) // [1, 2, 3, 4, 5] 출력
console.log(a) // [1, 2, 3, 4, 5] 출력
const tmp = Object.entries(a) // 키가없는 배열인 경우 키값(인덱스)을 생성하여 key:value 로 리턴
console.log(tmp); [ [0,1] , [1,2] , [2,3], [3,4], [4,5] ]
let c = {“a”:1 , “b”:2 , “c”:3} // 그럼 key,value 가 아닌 key:value 로 만들어진 객체의 경우는?
tmp = Object.entries(c)
console.log(tmp) // [ [‘a’, 1] , [‘b’, 2] , [‘c’, 3] ] // key:value 를 key, value 로 변환해서 리턴
# Object.keys(객체) → return : key,value 에서 key 만 배열로 리턴
let a = [1,2,3,4,5]
const keys = Object.values(a); // [1,2,3,4,5] 배열은 key/value가 따로 없기때문에 요소 그대로 출력#
Object.values(객체) → return : key,value 에서 value 만 배열로 리턴
let a = [1,2,3,4,5]
const keys = Object.values(a); // [1,2,3,4,5] 배열은 key/value가 따로 없기때문에 요소 그대로 출력
# typeof(변수) → return : Object (배열도 object) , string , number , boolean ,function 등등
console.log(typeof(변수)) // 무슨 타입인가?
console.log(typeof(변수)) // 무슨 타입인가?
# Array.isArray(변수) → return : true or false
console.log(Array.isArray(변수)) // 배열인가? true or false
# 변수 insteadOf 객체타입(객체끼리 비교할때) → return : true or false
let x = [1]
class q {
v;
}
}
let r = new q;
q.v = 100;
console.log(x instanceof q) // false
console.log(r instanceof q) // true
a = [1,2,3,4,5]
console.log(a instanceof Array) // true
console.log(a instanceof Object) // 배열도 객체니까 당근 true