2016-11-02 10 views
1

Как можно показать только 3 результата? Я попробовал это с помощью for-Loop, но он всегда говорит NaN. Im с использованием Lodash. Вот мой jsFiddle: https://jsfiddle.net/kxohm0qh/.Предельные результаты от json

Я хочу показать только 3 результата. Как я уже сказал, я попробовал с для цикла, когда Im не используя _.map как это:

for(var i = 0; i<3; i++){ 
var sorted = _.sortBy(data.car, 'roads').reverse(); 
console.log(sorted[i]); 
} 

работает в консоли. . Но если бы я интегрировать это для цикла в jsFiddle, он просто ломает :(Я также поиск предельной функции в Lodash, но это было безнадежно

ответ

1

Использование _.take() ограничить результаты:.

var data = { 
 
    "cars": [{ 
 
    "number": 5, 
 
    "car_name": "Mercedes", 
 
    "roads": 55 
 
    }, { 
 
    "number": 6, 
 
    "car_name": "Ford", 
 
    "roads": 41 
 
    }, { 
 
    "number": 9, 
 
    "car_name": "Darcia", 
 
    "roads": 36 
 
    }, { 
 
    "number": 3, 
 
    "car_name": "BMW", 
 
    "roads": 61 
 
    }, { 
 
    "number": 11, 
 
    "car_name": "Nissan", 
 
    "roads": 25 
 
    }] 
 
}; 
 

 
var sorted = _.take(_.reverse(_.sortBy(data.cars, 'roads')), 3); 
 

 
console.log(sorted); 
 

 
/** you can also use a chain **/ 
 

 
var sortedchained = _(data.cars) 
 
    .sortBy('roads') 
 
    .reverse() 
 
    .take(3) 
 
    .value(); 
 

 
console.log(sortedchained);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js"></script>