개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 18:42

Array.from(iterable) 사용 시 특정한 iterable 타입에 대한 오류 발생 이유

목록
  • HTTP전문가 2일 전 2025.06.14 18:42
  • 31
    1
제가 Array.from(iterable) 메소드를 사용하여 iterable 객체를 배열로 변환하려고 하였으나, Map 객체나 Set 객체를 대상으로 Array.from(iterable) 메소드를 호출하였을 때 오류가 발생하였습니다.

제가 사용한 코드는 다음과 같습니다.
javascript

const map = new Map();

map.set(1, 'a');

map.set(2, 'b');



const array = Array.from(map);

console.log(array);


이 코드는 오류를 발생시키지 않습니다. 하지만, 다음 코드는 오류를 발생시킵니다.
javascript

const set = new Set();

set.add(1);

set.add(2);



const array = Array.from(set);

console.log(array);


오류가 발생하는 이유를 알려주실 수 있나요?

    댓글목록

    profile_image
    나우호스팅  2일 전



    Array.from(iterable) 메소드는 iterable 객체를 배열로 변환하는 메소드입니다. 그러나 Map 객체나 Set 객체를 대상으로 Array.from(iterable) 메소드를 호출할 때 오류가 발생하는 이유는 다음과 같습니다.

    Map 객체의 경우, Array.from(iterable) 메소드는 key-value 쌍을 배열로 변환하기 때문에 오류가 발생하지 않습니다. Map 객체의 key-value 쌍을 배열로 변환하는 예제는 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    const map = new Map();
    
    map.set(1, 'a');
    
    map.set(2, 'b');
    
    
    
    const array = Array.from(map);
    
    console.log(array); // [[1, 'a'], [2, 'b']]
    
    


    Set 객체의 경우, Array.from(iterable) 메소드는 Set 객체의 요소를 배열로 변환하기 때문에 오류가 발생하지 않습니다. Set 객체의 요소를 배열로 변환하는 예제는 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    const set = new Set();
    
    set.add(1);
    
    set.add(2);
    
    
    
    const array = Array.from(set);
    
    console.log(array); // [1, 2]
    
    


    Set 객체의 요소를 배열로 변환할 때 오류가 발생하는 이유는 Set 객체의 요소가 중복되지 않기 때문입니다. Array.from(iterable) 메소드는 Set 객체의 요소를 배열로 변환할 때 중복되지 않은 요소만 배열로 변환합니다. 따라서 Set 객체의 요소를 배열로 변환할 때 오류가 발생하는 경우는 Set 객체의 요소가 중복된 경우입니다.

    #hostingforum.kr
    javascript
    
    const set = new Set();
    
    set.add(1);
    
    set.add(1); // 중복된 요소 추가
    
    
    
    const array = Array.from(set);
    
    console.log(array); // [1]
    
    


    Set 객체의 요소가 중복된 경우, Array.from(iterable) 메소드는 중복되지 않은 요소만 배열로 변환합니다. 따라서 Set 객체의 요소가 중복된 경우 오류가 발생하지 않습니다.

    #hostingforum.kr
    javascript
    
    const set = new Set();
    
    set.add(1);
    
    set.add(2);
    
    
    
    const array = Array.from(set);
    
    console.log(array); // [1, 2]
    
    


    Set 객체의 요소가 중복되지 않은 경우, Array.from(iterable) 메소드는 Set 객체의 요소를 배열로 변환합니다. 따라서 Set 객체의 요소가 중복되지 않은 경우 오류가 발생하지 않습니다.

    #hostingforum.kr
    javascript
    
    const set = new Set();
    
    set.add(1);
    
    set.add(2);
    
    
    
    const array = Array.from(set);
    
    console.log(array); // [1, 2]
    
    


    Set 객체의 요소가 중복되지 않은 경우, Array.from(iterable) 메소드는 Set 객체의 요소를 배열로 변환합니다. 따라서 Set 객체의 요소가 중복되지 않은 경우 오류가 발생하지 않습니다.

    2025-06-14 18:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 28,620건 / 5 페이지

검색

게시물 검색