过滤对象结果的经济方法

And*_*zke 1 javascript

我有一个JSON文件,我只需要检索十个最高分的项目:

我的数据:

{
    "movies" : {
        "eraserhead" : {
               "full_title" : "Eraserhead",
               "votes": 50
         },
        "psycho" : {
               "full_title" : "Psycho",
               "votes" : 90  
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

等等,大约50 - 100的列表.

我知道我可以迭代并构建一个列表,但我很好奇是否有任何较少的处理器密集型方法来根据该属性(movies[title].votes)过滤这些结果.

非常感谢任何帮助,谢谢.

Den*_*ret 5

最简单的方法是创建一个数组,对数组进行排序并获取前10个元素.

var myArray = [];
for (var key in movies) {
    var movie = movies[key];
    movie.title = key; 
    myArray.push(movie);
}
var tenFirst = myArray.sort(function(a,b){return b.votes-a.votes}).slice(0,10);
Run Code Online (Sandbox Code Playgroud)

演示(打开控制台)