2016-10-20 3 views
1

큰 개체를 값순으로 정렬해야하므로 내림차순으로 나열됩니다 (범위는 7-2). 현재, 정렬 순서를 실제로 처리하는 것이 확실치 않지만, 일부 논리가 있다고 가정 할지라도 그것은 상당히 무작위 적으로 보입니다.정수 값으로 개체 재정렬

property_list = { 
    1 : { 
     description : '...', 
     specs : { 
      bedroom_number: 7 
     } 
    }, 
    2 : { 
     description : '...', 
     specs : { 
     bedroom_number: 3 
     } 
    }, 
    3 : { 
     description : '...', 
     specs : { 
      bedroom_number: 5 
     } 
    } 
} 

그래서 나는 그래서 그들은 것을 7, 5, 3과 침실 숫자 값의 측면에서 준비 specs.bedroom_number에 의해 순서를 변경해야합니다 여기

는 데이터의 예를 들어 하위 집합입니다.

정렬이 가능합니까? 또는 객체를 통해 작업하고 각 객체를 새로운 데이터 세트에 추가하는 일종의 루프가 필요합니까?

+1

객체는 주문이 없습니다. 배열에서 객체의 * 키 *를 사용하여 배열을 정렬하거나 객체 대신 배열에 데이터를 저장할 수 있습니다. –

+0

@MikeC 그래서 이것은 배열에서만 가능합니까? 배열을 사용하여 순서를 어떻게 처리합니까? – user1486133

+1

배열에있는 경우 ['sort'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) 함수를 사용할 수 있습니다. 'spec.bedn_number' 값을 비교할 수 있도록 자신의 정렬 함수를 전달하십시오. 내가 게시 한 링크는 자신의 정렬 기능을 작성하는 방법의 예를 보여줍니다. –

답변

2

당신은 Array.prototype.sort()의 사용으로 specs.bedroom_number을 기준으로 정렬 한 다음 변수 property_list에서 객체의 새로운 배열을 만들 수 있습니다 :

var property_list = {1: {description: '...',specs: {bedroom_number: 7}},2: {description: '...',specs: {bedroom_number: 3}},3: {description: '...',specs: {bedroom_number: 5}}}, 
 
    arr = Object 
 
     .keys(property_list) 
 
     .map(function (key) { 
 
      return property_list[key]; 
 
     }) 
 
     .sort(function (a, b) { 
 
      return b.specs.bedroom_number - a.specs.bedroom_number; 
 
     }); 
 

 
console.log(arr);

+0

감사합니다! 이 작품은 :) – user1486133

+0

그래서 기꺼이 도와 드리겠습니다. –