객체의 객체 수를 계산하는 Javascript
이 질문에 이미 답변이 있습니다.
다음과 같은 개체가 있습니다.
Object {0=Object, 1=Object, 2=Object} // Output from console.log(obj.Data);
그러나 개체의 개체 수를 세고 마지막으로 하위 개체에서 속성 값을 가져올 수있는 방법은 없습니다.
나는 시도했다
console.log(obj.Data[0].length); // It does not work
console.log(obj.Data.length); // It does not work
이것은 나를 위해 약간 까다 롭습니다. 여러분이 도울 수 있기를 바랍니다.
이 작업을 수행하는 가장 쉬운 방법은 우수한 성능과 이전 브라우저와 새 브라우저 모두와의 호환성으로 페이지에 Lo-Dash 또는 Underscore 를 포함하는 것입니다.
그런 다음 _.size(object)
또는_.keys(object).length
의 경우 다음을 사용하여 obj.Data
테스트 할 수 있습니다.
console.log( _.size(obj.Data) );
또는:
console.log( _.keys(obj.Data).length );
Lo-Dash와 Underscore는 모두 훌륭한 라이브러리입니다. 코드에서 매우 유용 할 것입니다. (그들은 서로 다소 유사합니다. Lo-Dash는 몇 가지 장점이있는 최신 버전입니다.)
또는 코드에이 함수를 포함하여 객체의 속성을 반복하고 계산할 수 있습니다.
function ObjectLength( object ) {
var length = 0;
for( var key in object ) {
if( object.hasOwnProperty(key) ) {
++length;
}
}
return length;
};
다음과 같이 테스트 할 수 있습니다.
console.log( ObjectLength(obj.Data) );
하지만이 코드는 최신 브라우저 에서처럼 빠르지는 않습니다. 최신 브라우저에서는 훨씬 빠르며 이전 브라우저에서도 작동하는 버전의 경우 다음을 사용할 수 있습니다.
function ObjectLength_Modern( object ) {
return Object.keys(object).length;
}
function ObjectLength_Legacy( object ) {
var length = 0;
for( var key in object ) {
if( object.hasOwnProperty(key) ) {
++length;
}
}
return length;
}
var ObjectLength =
Object.keys ? ObjectLength_Modern : ObjectLength_Legacy;
이전과 마찬가지로 다음을 사용하여 테스트하십시오.
console.log( ObjectLength(obj.Data) );
이 코드는 Object.keys(object).length
최신 브라우저에서 사용 되며 이전 브라우저에 대한 루프 계산으로 돌아갑니다.
그러나이 모든 작업을 수행하려는 경우 대신 Lo-Dash 또는 Underscore를 사용하고 해당 라이브러리가 제공하는 모든 이점을 얻을 것을 권장합니다.
I set up a jsPerf that compares the speed of these various approaches. Please run it in any browsers you have handy to add to the tests.
Thanks to Barmar for suggesting Object.keys
for newer browsers in his answer.
In recent browsers you can use:
Object.keys(obj.Data).length
See MDN
For older browsers, use the for-in
loop in Michael Geary's answer.
Try Demo Here
var list ={}; var count= Object.keys(list).length;
참고URL : https://stackoverflow.com/questions/16976904/javascript-counting-number-of-objects-in-object
'IT TIP' 카테고리의 다른 글
Jenkins를 설정할 때 잘못된 명령 ProxyRequests (0) | 2020.10.15 |
---|---|
OS X 10.6.7에서 포트 22를 여는 방법 (0) | 2020.10.15 |
DocumentBuilder.parse가 DTD 참조를 무시하도록합니다. (0) | 2020.10.15 |
ASP.NET 응용 프로그램을 디버깅하는 동안 Fiddler에서 localhost 트래픽을 표시하는 방법은 무엇입니까? (0) | 2020.10.15 |
셸 스크립트를 실행할 때 Jenkins에서 빌드를 불안정하게 표시하는 방법 (0) | 2020.10.15 |