2014-12-22 3 views
0

Вот мой массив объектов:быстрый способ для фильтрации объектов в массиве их значение

var arr = [ 
    {name:"Mike", age:17}, 
    {name:"John", age:21}, 
    {name:"Sam", age:32}, 
    {name:"Mark", age:23} 
] 

К примеру у меня есть сотую тысячи объектов в этом массиве.

Что является самым быстрым способом отфильтровать его по возрасту (от максимального к наименее)?

Вот мой ожидаемый результат:

var arr = [ 
    {name:"Sam", age:32}, 
    {name:"Mark", age:23} 
    {name:"John", age:21}, 
    {name:"Mike", age:17},  
] 
+0

Фильтр 'величайший минимум 'звучит скорее как сортировка. Что ожидается выход? – charlietfl

+1

Возможно, вы захотите проверить что-то вроде Lodash (https://egghead.io/lessons/core-javascript-introduction-to-lodash) – Varedis

+0

Это не фильтрация, сортировка –

ответ

1

Я думаю, что вам нужно, это сортировка. Таким образом, вы могли бы попробовать что-то вроде этого:

// for sorting them from the greatest to the lower 
function compare(a,b) { 
    return b.age-a.age; 
} 

arr.sort(compare); 

Если вы хотите, чтобы отсортировать их от низшего к самым большим, вы должны использовать следующие compare

function compare(a,b) { 
    return a.age-b.age; 
} 

Пожалуйста, смотрите здесь JSFiddle.

+0

Ваш код отсортирован от наименее до великого, а не самого большого не менее –

+0

Короче: 'return a.age - b.age;' –

+0

@FelixKling благодарит за ваш комментарий. – Christos