
Array.from(iterable) 메서드는 iterable 객체가 iterator를 반환할 때만 작동합니다.
위 코드에서 iterable 객체는 iterator를 반환하지 않기 때문에 undefined가 출력됩니다.
iterator를 반환하는 iterable 객체를 생성하는 방법은 다음과 같습니다.
javascript
let iterable = { value: 1, done: false, next: function() { return { value: 2, done: true }; } };
let arr = Array.from(iterable);
console.log(arr); // [2]
또는 Symbol.iterator 메서드를 사용하여 iterator를 반환하는 iterable 객체를 생성할 수 있습니다.
javascript
let iterable = { value: 1, done: false };
iterable[Symbol.iterator] = function() {
return {
next: function() {
if (!this.done) {
this.value = 2;
this.done = true;
}
return this;
}
};
};
let arr = Array.from(iterable);
console.log(arr); // [2]
위 코드에서 iterable 객체는 iterator를 반환하므로 Array.from(iterable) 메서드가 작동하고 배열로 변환됩니다.
2025-06-08 23:29