for-in 문
TypeScript 문서는 for
또는 같은 루프에 대해 아무것도 말하지 않습니다 for-in
. 언어를 가지고 놀 면서 루프 에서 any
또는 string
변수 만 지원되는 것 같습니다 for
.
이 결정이 내려진 이유는 무엇입니까?
유형 정보를 사용하고 강력한 유형의 반복 변수를 사용하지 않는 이유는 무엇입니까?
for-in 문은 실제로 TypeScript에서 구현되는 방식 인 개체 속성을 열거하기 위해 존재합니다. 배열에서 사용하는 데 몇 가지 문제가 있습니다 .
TypeScript 팀을 대신하여 말할 수는 없지만 이것이 언어로 구현 된 이유라고 생각합니다.
Typescript 1.5 이상에서는 다음 for..of
과 반대로 사용할 수 있습니다.for..in
var numbers = [1, 2, 3];
for (var number of numbers) {
console.log(number);
}
TypeScript는 발에 총을 쏘지 않습니다.
반복기 변수는 문자열이기 때문에 문자열 입니다. 관찰 :
var obj = {};
obj['0'] = 'quote zero quote';
obj[0.0] = 'zero point zero';
obj['[object Object]'] = 'literal string "[object Object]"';
obj[<any>obj] = 'this obj'
obj[<any>undefined] = 'undefined';
obj[<any>"undefined"] = 'the literal string "undefined"';
for(var key in obj) {
console.log('Type: ' + typeof key);
console.log(key + ' => ' + obj[key]);
}
현재 몇 개의 키 / 값 쌍이 obj
있습니까? 6, 다소? 아니오, 3 및 모든 키는 문자열입니다.
Type: string
0 => zero point zero
Type: string
[object Object] => this obj;
Type: string
undefined => the literal string "undefined"
edit 2018 : 이것은 구식이며 js 및 typescript에는 이제 for..of 루프가 있습니다.
http://www.typescriptlang.org/docs/handbook/iterators-and-generators.html
"TypeScript Revealed"라는 책에는
"여기에 설명 된대로 for 또는 for..in 루프를 사용하여 배열의 항목을 반복 할 수 있습니다.
// standard for loop
for (var i = 0; i < actors.length; i++)
{
console.log(actors[i]);
}
// for..in loop
for (var actor in actors)
{
console.log(actor);
}
"
두 번째 루프는 루프 의 액터를 전달 하지 않습니다 . 그래서 이것은 명백한 잘못이라고 말할 것입니다. 슬프게도 위와 같이 루프는 typescript에 의해 변경되지 않습니다.
map and forEach는 종종 저에게 도움이되며 함수 정의에 대한 typescripts 향상으로 인해 더 접근하기 쉽습니다.
this.notes = arr.map(state => new Note(state));
TypeScript에 대한 나의 위시리스트;
- 일반 컬렉션
- 반복자 (IEnumerable, IEnumerator 인터페이스가 가장 좋습니다)
참조 URL : https://stackoverflow.com/questions/12950681/for-in-statement
'IT TIP' 카테고리의 다른 글
'System.Web.Security.SqlMembershipProvider'에는 스키마 버전 '1'과 호환되는 데이터베이스 스키마가 필요합니다. (0) | 2020.12.27 |
---|---|
varchar가 숫자인지 확인 (TSQL) (0) | 2020.12.27 |
sprintf를 사용하여 문자열을 추가하는 방법은 무엇입니까? (0) | 2020.12.27 |
Java BitSet 예 (0) | 2020.12.27 |
iOS 8에서 UIImagePickerController가 표시되지 않음 (0) | 2020.12.27 |