Typescript iterator
Symol.iterator 함수가 구현되어 있으면 iterable 이라고 함.implements iterable<T>
Array, Map, Set, String.. 등
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class CustomIterable implements Iterable<string> { private _array: Array<string> = ['first', 'second'];
[Symbol.iterator]() { var nextIndex = 0;
return { next: () => { return { value: this._array[nextIndex++], done: nextIndex > this._array.length } } } } }
const cIterable = new CustomIterable();
for (const item of cIterable) { console.log(item); }
|
for..in
객체를 순회할 때 쓰세요.
배열을 순회할 때는 사용하지 않을 것
루프가 무작위로 순회할 수도 있음, index가 number이 아닌 string으로 나옴
for..of
배열을 순회할때 사용.
객체를 순회할때도, for (const item of Object.keys(객체)) {..}
방식으로 사용 가능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Person { _name: string = null; _age: number = null;
constructor(name: string, age: number) { this._age = age; this._name = name; } };
const junho = new Person('Junho', 12);
for (const item in junho) { console.log(item); console.log(junho[item]); }
for (const item of Object.keys(junho)) { console.log(item); console.log(junho[item]); }
|
Reference
https://www.inflearn.com/course-status-2/