객체

Taehye.on·2023년 2월 28일
0

코드스테이츠 44기

목록 보기
11/89
post-thumbnail

D-12

어제 배열 코플릿은 생각보다 쉽게 풀었다. 객체는 배열에 비해 어려울 수 있다고 멘토님이 말씀해주셨는데 실제로 배열에 비해 어려웠을 뿐 기본적인 틀은 비슷하게 느껴졌다.
오늘 배웠던 개념들을 정리해 보자

🔍 객체란?

객체는 배열과 마찬가지로 다량의 데이터를 한 번에 다룰 수 있는 참조 자료형데이터이다.
객체는 0개 이상의 프로퍼티의 조합으로 되어있으며
프로퍼티는 키와 값의 조합으로 이루어져있다.

  • 프로퍼티 = 객체의 상태를 나타내는 값이다. (data)
  • 메서드 = 프로퍼티를 참조하고 조작할 수 있는 동작
  • 👨‍🏫 배열과 객체의 차이점

    배열이 데이터의 순서정보(index)를 가진 자료형이였다면
    객체는 데이터에 이름(key)을 부여할 수 있다.
    이름(key)을 통해 데이터에 의미를 부여할 수 있고 (key)를 사용해 데이터에 접근할 수 있다.

    👨‍🏫 프로퍼티 참조 방법

    프로퍼티를 참조(Read)하는 방법은 두가지가 있다.

  • Dot notation
  •  console.log(myCatDoi.이름)
  • Bracket notation
  • console.log(myCatDoi["이름"]) // 반드시 문자열을 입력
    console.log(myCatDoi[이름]) // 단, 문자열이 할당된 변수를 입력하는 것은 가능
  • 프로퍼티 추가 (Create)
  • function select(arr, obj) {
      let newObj = {}; // 빈 객체를 선언
      for (let prop in obj) {
        for (let i = 0; i < arr.length; i++) {
          if (prop === arr[i]) {
            newObj[prop] = obj[prop]; // 다음과 같이 추가 가능
          }
        }
      }
      return newObj;
    }
  • 프로퍼티 제거 (delete)
  • function removeProperty(obj, property) {
      delete obj[property];
    } //객체(obj)와 키(property)를 입력받아 키가 가리키는 속성(property)을 제거(delete)
  • 프로퍼티 수정 (Update)
  • 프로퍼티 유무 확인 ('객체' in 변수)
  • 👨‍🏫 객체 메서드

  • Object,keys()
  • console.log(Object.keys(obj)) // key(키)를 모아서 배열로
  • Object.values()
  • console.log(Object.values(obj)) //value(값)을 모아서 배열로
  • Object.assign()
  •  let user = {name: 'kimcoding', job: 'student'};
        let info = {job: 'engineer', age: 25};
        let userInfo = Object.assign(user, info);
        console.log(userInfo); // 객체 합치기, 객체 복사
  • Object.is(obj1, obj2)
  • console.log(Object.is(obj1, obj2));
        console.log(Object.is({}, {})); //두 객체가 같은지 비교

    🔍 for ~ in 문

    어제 다뤄본 for ~ of문은 배열에서, for ~in문이 객체에서 유용하게 쓰인다.

    function extend(obj1, obj2) {
      for (let key in obj2) {   // obj2 순회
        if (!(key in obj1)) {   // 만약 obj1이 없으면
          obj1[key] = obj2[key];
        }
      }

    위 예시는 코플릿 19번에서 가져왔다.
    두 개의 객체를 입력받아 두번째 객체의 속성들을 첫번째 객체에 추가하는 문제이다.

    0개의 댓글