2011-01-15 4 views

답변

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 
+1

자바 스크립트의 Object.keys()와 같은 더 나은 API를 호출하는 것으로 보입니다. – hrabinowitz

0

비록 짧은 코드 :

var o:Object={foo:"hello",bar:"world",cnt:2}; 
trace(o.cnt); // output 2; 

은 그냥에서 매우 마지막 인수를 업데이트 기억 객체 목록이 추가되면 아무 것도 추가되지 않습니다. 그것이이 접근법의 주요 단점이라고 생각합니다. 그리고 이제 물론 .cnt은 실제로 실제 길이를 반환하지 않지만 목록 길이는 1입니다.

+0

까다로워진다. 속성이 이미 존재하는 속성을 덮어 쓰거나 속성이 존재하지 않으면 삭제 될 때'cnt'가 부정확해질 수 있습니다. 따라서 객체가 수정 될 때마다 검사가 필요합니다. –