본문 바로가기
HTML CSS JS

자바스크립트 객체 (JavaScript Object)

by wanttosleep1111 2023. 1. 15.

자바스크립트 객체 (JavaScript Object)

 

객체 (Object)

  • 여러 속성을 하나의 변수 안에 저장할 수 있도록 해주는 데이터 타입
  • 대표 괄호 = { }
  • key(속성), value(값)로 구성 (파이썬 딕셔너리와 유사)

 

1. 객체 생성 : 객체명 = { }

 

2. 객체 출력 : 자바와 달리 바로 출력 가능

 

3. 객체 내 데이터에 접근

  • 객체명.key이름
  • 객체명['key이름']

4. 객체 내 데이터 변경

  • 객체명.바꿀데이터key = 바꿀데이터value

5. 배열 안에 객체를 넣을 수 있고, 객체 안에 배열을 넣을 수 있음

  • 배열 함수 map() : 조건에 맞는 새로운 배열을 만들어내는 함수
    객체명.map(매개변수 => 매개변수.key이름)
    (배열 내 객체 각각의 같은 key값을 가진 모든 데이터를 가져옴)
  • 객체 안 배열 데이터 접근 : 객체명.배열명[인덱스번호]
<body>
    <script>
        // (1) 객체 생성

        let person = {
            name : '박명수',
            age : 52,
            team : '무한도전'
        }
        
        // (2) 객체 출력
        console.log(person)

        // (3) 객체 내 데이터에 접근
        // case1) 객체이름.key이름
        console.log(person.name)
        // case2) 객체이름['key이름']
        console.log(person['name'])

        // (4) 객체 내 데이터를 변경하는 방법
        person.name = '정준하'
        console.log('현재 객체 :',person)

        // 배열 안에 객체를 넣을 수 있고,
        let orderList = [{
            name : '아메리카노',
            iced : 'iced',
            place : 'takeout'
        },{
            name : '바닐라라떼',
            iced : 'hot',
            place : 'here'
        }]

        console.log(orderList)

        // 아메리카노만 출력
        // 배열에 접근 => 객체 안에 접근
        console.log(orderList[0].name)

        // 배열함수 map 함수
        // 조건에 맞는 새로운 배열을 만들어내는 함수
        let name = orderList.map(object => object.name)
        console.log(name)

        // 객체 안에 배열을 넣을 수 있다.

        let chart = {
            name : 'Menlon Top 100',
            title : ['사건의 지평선', 'OMG', 'ditto'],
            singer : ['윤하', '뉴진스', '뉴진스']
        }

        console.log(chart)

        // 사건의 지평선만 출력
        console.log(chart.title[0])

    </script>
    
</body>

 

▶ 예제

① pokemon이라는 배열 생성

② pokemon 배열 안에 3개의 포켓몬을 만들고 각각 이름, 나이, 스킬 속성값을 주기

③ 콘솔창에 '제가 가장 좋아하는 포켓몬은 ~이고, ~속성입니다.' 출력

④ 콘솔창에 '제가 두번째로 좋아하는 포켓몬은 ~이고, ~속성입니다.' 출력 

⑤ pokemon중 하나의 스킬을 함수로 설정하고 사용해보기

 
<body>
    <script>
        let pokemon = [{
            name : '피카츄',
            age : 2,
            skill : '전기'
        },{
            name : '파이리',
            age : 3,
            skill : '불'
        },{
            name : '꼬부기',
            age : 4,
            skill : function(){
                console.log('꼬부기 물대포 공격!!')
            }
        }]

        console.log('제가 가장 좋아하는 포켓몬은',pokemon[0].name+'이고,',pokemon[0].skill+'속성입니다.')
        console.log('제가 두번째로 좋아하는 포켓몬은',pokemon[1].name+'이고,',pokemon[1].skill+'속성입니다.')
        
        // 객체 내 함수 사용
        pokemon[2].skill()
    
    </script>
</body>
</html>

댓글