2017-02-27 8 views
0

개체 배열이 아래에 있으므로 정렬하고 싶습니다.lodash를 사용하여 키 이름 'val'을 기준으로 개체 배열 정렬

 function myFunction() { 
      points.sort(function(a, b){return a.val - b.val}); 
      console.log(points) 
     } 

그러나 이것은 나에게 잘못 출력을 반환 -

 var points = [ 
{ 
    val: '0.10', 
    text: '$0.10' 
}, 
{ 
    val: '0.50', 
    text: '$0.50' 
}, 
{ 
    val: '1', 
    text: '$1' 
}, 
{ 
    val: '2', 
    text: '$2' 
}, 
{ 
    val: '3', 
    text: '$3' 
}, 
{ 
    val: '10', 
    text: '$10' 
}, 
{ 
    val: '20', 
    text: '$20' 
}, 
{ 
    val: '25', 
    text: '$25' 
}, 
{ 
    val: '50', 
    text: '$50' 
}, 
{ 
    val: '75', 
    text: '$75' 
}, 
{ 
    val: '100', 
    text: '$100' 
}, 
{ 
    val: '150', 
    text: '$150' 
}, 
{ 
    val: '200', 
    text: '$200' 
}, 
{ 
    val: '250', 
    text: '$250' 
}, 
{ 
    val: '300', 
    text: '$300' 
}, 
{ 
    val: '400', 
    text: '$400' 
}, 
{ 
    val: '1000', 
    text: '$1,000' 
}, 
{ 
    val: 'Other', 
    text: 'Other' 
} 

]

I 정렬 기능 아래에 노력했다. orderby 및 sortby를 사용했지만 여전히 잘못된 출력을 얻으려고했습니다.

_.orderBy (포인트 [ '브로'], [ 'ASC'])

_.sortBy (점, '발')

나는 두 옵션을 사용하여 정렬 된 값이 잘못되었습니다.

+0

이 동일하지 않습니다. 필드'val'에'strings'이 있습니다. – MysterX

+0

나는 단지 같은 것을하고 싶었다. @Rory McCrossan –

답변

0

사용이 정렬 방법 - numbers`와`strings``에 대한 정렬

points.sort(function(a,b){ 
return parseInt(a.val) - parseInt(b.val); 
}) 
+0

실수로 나는 (a-b)를 썼다. 여전히 잘못된 값을 받고있다. – Kalashir

+0

parseInt()가 정밀도를 잃어 버리기 때문에 parseInt() 대신 Number()를 사용한다. –