dom 이벤트에서 for문은 되고 for in문은 안 됩니다. 왜이럴까요?

조회수 1339회

리액트에서 전체 선택·해제 체크박스를 만들고 세부 체크박스가 전체 체크박스를 따라가게 만들고 있습니다. for in 문으로 안 되는데, for문으로는 됩니다. 왜이럴까요?

import React, {Component} from 'react'
import axios from 'axios'

class SETTING extends Component{

    componentDidMount(){
        axios.get('/setting')
        .then((res)=>{
            for(var i in res.data.results){

                var check = document.createElement('input')
                check.setAttribute('type', 'checkbox')
                check.setAttribute('class', 'check')
                check.setAttribute('value', res.data.results[i].num)
                check.setAttribute('name', res.data.results[i].name)

                var li = document.createElement('li')
                var text = document.createTextNode(res.data.results[i].name)
                li.appendChild(check)
                li.appendChild(text)

                var ul = document.querySelector('#list')
                ul.appendChild(li)
            }
        })
    }

    render(){
        return(
            <div>
                <ul></ul>

                <input type='checkbox' id='allcheck' onClick={()=>{
                    var allCheck = document.querySelector('#allcheck')
                    var checkArr = document.querySelectorAll('.check')


                    for(var i=0; i<checkArr.length; i++){
                        checkArr[i].checked=allCheck.checked
                    }
                    // for(var i in checkArr){
                    //  checkArr[i].checked=allCheck.checked
                    // } //이 부분이 왜 안 되는지 모르겠습니다.
                }}>
                </input>

                <ul id='list'></ul>

            </div>
        )
    }
}

3 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)