2014-11-03 2 views
0

Если у меня есть структураКак использовать Array.filter

{ 
    "users": { 
     "John": [1 , 4, 5], 
     "Max": [2, 3, 7], 
     "Bill": [3, 5, 4] 
    } 
} 

массив является месяцы задолженности в течение 3 месяцев. Мне нужно напечатать, кто больше всего обязан месяцем. Пример

  • Bill, Max, John - за 1-й месяц.
  • Bill, John, Max - на второй месяц.
  • и так далее.

Мне нужно сделать это с помощью JS. Есть ли простой способ использования Array.filter?

+0

Зачем вам это нужно? Это не то, на что «фильтр», это не проблема, которая хорошо подходит для него. – meagar

ответ

0

var users = 
 
    [ 
 
     {name: "John", values: [1 , 4, 5]}, 
 
     {name: "Max", values: [2, 3, 7]}, 
 
     {name : "Bill", values: [3, 5, 4]} 
 
    ] 
 
function sortByMonth(monthNumber) { 
 
    return users.sort(function(a, b) { return b.values[monthNumber] - a.values[monthNumber];}); 
 
    }

Это должно быть то, что вы ищете, вы должны реально изменить значения в массив, но тогда вы можете сортировать по сумме задолженности в месяц с функцией sortByMonth.

+0

не работает для меня. – Alex

+0

, и я не могу изменить структуру. – Alex

+0

Какой браузер вы используете? Я протестировал это в Chrome и прошел в 0 (в течение первого месяца) возвращает массив в порядке Bill, Max, John, как в вашем примере. – Shriike