2016-11-02 112 views
1

如何仅显示3个结果?我用for-Loop试过,但它总是说NaN。我使用Lodash。这是我的jsFiddle:https://jsfiddle.net/kxohm0qh/限制json结果

我只想显示3条结果。就像我说的,我试了一下for循环,当我不是使用_.map这样的:

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

它工作在控制台。但如果我这个整合的for循环中的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>