javascript/javascript 기본지식

객체 메소드, 계산된 프로퍼티

honey.kikiki 2021. 7. 12. 12:58
728x90

객체 메소드(Object Methods)

Object.assign() : 객체 복제

Object.keys()

Object.values()

Object.entries()

Object.fromEntries()



Object.assign() : 객체 복제

 

const user = {
  name: "Mike",
  age: 30,
};

const cloneUser = user; // 참조값만 저장

const cloneUser = Object.assign({}, user);
// 객체복사;

// user의 값을 앞에 빈 객체에 저장한다.

const cloneUser = Object.assign({ gender: "male" }, user);

const cloneUser = {
  name: "Mike",
  age: 30,
  gender: "male",
};

const cloneUser = Object.assign({ name: "Tom" }, user);

const cloneUser = {
  // name : 'Mike',
  // 덮어쓰게 된다
  name: "Tom",
  age: 30,
};

const user = {
  name: "Mike",
};

const info1 = {
  age: 30,
};

const info2 = {
  gender: "male",
};

Object.assign(user, info1, info2);



Object.keys() : 키 배열 반환

const user = {
  name: "Mike",
  age: 30,
  gender: "male",
};

Object.keys(user); // ["name","age","gender"]

 

Object.values() : 값 배열 반환

 

const user = {
  name: "Mike",
  age: 30,
  gender: "male",
};

Object.values(user); // ["Mike","30","male"]



Object.entries() 키 / 값 배열 반환

const user = {
  name: "Mike",
  age: 30,
  gender: "male",
};

Object.entries(user) // [["name", "Mike"][("age", 30)][("gender", "male")]];



Object.fromEntries() 키/값 배열을 객채로

const arr = [["name", "Mike"][("age", 30)][("gender", "male")]];

Object.fromEntries(arr);

// {

// name : 'Mike',

// age : 30,

// gender:'male',

// }

 

계산된 프로퍼티(Computed property)

let a = "age";

// 위에 a 변수가 밑에 객체에 할당된다

const user = {
  name: "Mike",

  [a]: 30, //age : 30
};

const user =
  {
    [1 + 4]: 5,

    ["안녕" + "하세요"]: "Hello",
  } >
  user <
  {
    5: 5,
    안녕하세요: "Hello",
  };

 

어떤값이 키가 될지 모를떄 사용

 

function makeObj(key, val) {
  return {
    [key]: val,
  };
}

const obj = makeObj("나이", 33);

console.log(obj); // {나이 : 33}

const obj = makeObj("성별", "male");

console.log(obj); // {성별 : "male"}