솔미는 성장중

[JS] 표준 내장 객체 : 객체 본문

JavaScript/표준 내장 객체

[JS] 표준 내장 객체 : 객체

solming 2023. 7. 23. 11:56
728x90

Object.assign()

하나 이상의 출처(source) 객체로부터 대상(target) 객체로 속성을 복사하고 대상 개체를 반환

1번째를 제외하고는 모두 출처 객체.

원본이 변경됨!!!

 

(Object라는 전역 객체의 prototype으로 만들어져있는게 아니기 때문에 일반적인 객체 데이터에는 사용 불가하다. 즉, User.assign() 등 불가능. 무조건 Object.assign() => 정적 메소드)

const target = {a:1, b:2}
const source1 = {b:3, c:4}
const source2 = {c:5, d:6}
const result = Object.assign(target, source1, source2)
//source 객체들을 순서대로 복사해서 덮어쓴다.

const result2 = Object.assign({}, target, source1,source2)
// 빈 객체에 소스 객체 3개를 넣은 것

console.log(target) //{a: 1, b: 3, c: 5, d: 6}
console.log(result) //{a: 1, b: 3, c: 5, d: 6}
console.log(result2) //{a: 1, b: 3, c: 5, d: 6}

 

전개 연산자를 이용해 위 식과 같은 결과를 내볼 수도 있다.

const result3 = {
  ...target,
  ...source1,
  ...source2
}

console.log(result3) //{a: 1, b: 3, c: 5, d: 6}

 

🌞 만약에 원본을 손상하지 않고 두 객체를 그냥 합치고 싶은거라면???

: assign쓸 때 맨 앞에 {} 빈 객체를 써주기

const userAge = {
	name:'A',
    age:99
}
const userHeight = {
	name:'A',
    height:170
}
const target = Object.assign({}, userAge, userHeight)
console.log(target)
//{name:'A', age:99, height:170}

 

 

 

 

Object.entries()

주어진 객체의 각 속성과 값으로 하나의 배열을 만들어 요소로 추가한 2차원 배열을 반환

(2차원 배열: 배열안에 배열이 있는 형태!)

const user = {
  name: 'sol',
  age:99,
  isValid: true,
  email: '1234@gmail.com'
}
console.log(Object.entries(user))
/* ['name', 'sol']
  ['age', 99]
  ['isValid', true]
  ['email', '1234@gmail.com']*/
  for(const [key,value] of Object.entries(user)){
    console.log(key,value)
  }
  /*name sol
   age 99
   isValid true
   email 1234@gmail.com*/

 

Object.keys()

주어진 객체의 속성 이름을 나열한 배열을 반환

const user = {
  name: 'sol',
  age:99,
  isValid: true,
  email: '1234@gmail.com'
}
console.log(Object.keys(user))
//{'name','age','isValid','email'}

 

Object.values()

주어진 객체의 속성 값을 나열한 배열을 반환

const user = {
  name: 'sol',
  age:99,
  isValid: true,
  email: '1234@gmail.com'
}
console.log(Object.values(user))
//{'sol',99,true,'1234@gmail.com'}

 

728x90

'JavaScript > 표준 내장 객체' 카테고리의 다른 글

[JS] JSON  (0) 2023.07.23
[JS] 표준 내장 객체 : 배열  (0) 2023.07.20
[JS] 표준 내장 객체 : 날짜  (0) 2023.07.20
[JS] 표준 내장 객체 : 수학  (0) 2023.07.20
[JS] 표준 내장 객체 : 숫자  (0) 2023.07.20