2017-10-17 2 views
-2
나는 다음과 같은 따라서 키 길이

키 길이

를 기반으로 자바 스크립트 객체를 정렬 할 필요가

에 따라 자바 스크립트 객체를 정렬하는 방법 :

{ 'b' : 'asdsad', 'bbb' : 'masdas', 'bb' : 'dsfdsfsdf' } 

이 될 수 없을 것입니다 :

{ 'b' : 'dsfdsfsdf', 'bb' : 'dsfdsfsdf', 'bbb' : 'masdas' } 

답변

4

더있다 Javascript 객체 속성의 순서와 같은 개념이므로 정렬 할 수 없으며 순서를 선언하여 얻을 수 없습니다. 그들이 어떤 순서로 나타날지 보장 할 수 없기 때문입니다. EcmaScript 1 사양

4.3.3 객체

객체에서

는 Object 형식의 구성원입니다. 정렬되지 않음 컬렉션에는 값 값, 개체 또는 기능이 포함되어 있습니다. 객체의 속성에 저장된 함수를 메소드라고합니다.

주문이 필요하면 배열을 보는 것이 유용 할 수 있습니다.

+0

또는'Map's! https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map – Walk

+1

@Walk 여러분은 그것들을 '정렬'할 수 없습니다. 삽입 순서 반복은 일부 알고리즘에 유용한 속성이지만 인덱스 된 액세스와는 거리가 있습니다. – Bergi

1
function TestA() { 

    var a = { 
    'b': 'asdsad', 
    'bbb': 'masdas', 
    'bb': 'dsfdsfsdf' 
    } 

    var keyArray = Object.keys(a); 

    var object = {}; 

    keyArray.sort(); 

    keyArray.forEach(function(item) { 

    object[item] = a[item] 

    }) 
    return object 
}