일반 Actionscript 개체의 속성 수는 어떻게 얻을 수 있습니까? 당신은 모든 요소를 반복 할 것액션 스크립트 개체의 속성 번호
7
A
답변
20
(처럼 배열의 길이)를 계산합니다 : 여기
function objectLength(myObject:Object):int {
var cnt:int=0;
for (var s:String in myObject) cnt++;
return cnt;
}
var o:Object={foo:"hello", bar:"world"};
trace(objectLength(o)); // output 2
0
비록 짧은 코드 :
var o:Object={foo:"hello",bar:"world",cnt:2};
trace(o.cnt); // output 2;
은 그냥에서 매우 마지막 인수를 업데이트 기억 객체 목록이 추가되면 아무 것도 추가되지 않습니다. 그것이이 접근법의 주요 단점이라고 생각합니다. 그리고 이제 물론 .cnt
은 실제로 실제 길이를 반환하지 않지만 목록 길이는 1입니다.
+0
까다로워진다. 속성이 이미 존재하는 속성을 덮어 쓰거나 속성이 존재하지 않으면 삭제 될 때'cnt'가 부정확해질 수 있습니다. 따라서 객체가 수정 될 때마다 검사가 필요합니다. –
자바 스크립트의 Object.keys()와 같은 더 나은 API를 호출하는 것으로 보입니다. – hrabinowitz