這是原始數組,過濾JSON陣列使所有MAX值在JavaScript
var dates =
[ { user_id: '1', week_number: '2', amount: '100' },
{ user_id: '1', week_number: '2', amount: '100' },
{ user_id: '1', week_number: '2', amount: '100' },
{ user_id: '1', week_number: '3', amount: '100' },
{ user_id: '3', week_number: '3', amount: '100' } ]
更新
首先,我試圖排序最高week_number
值陣列:
var x = dates.sort(function (itemA, itemB) {
return itemA.week_number < itemB.week_number;
});
得到:
[ { user_id: '1', week_number: '3', amount: '100' },
{ user_id: '3', week_number: '3', amount: '100' },
{ user_id: '1', week_number: '2', amount: '100' },
{ user_id: '1', week_number: '2', amount: '100' },
{ user_id: '1', week_number: '2', amount: '100' } ]
,然後use.filter得到
[ { user_id: '1', week_number: '3', amount: '100' },
{ user_id: '3', week_number: '3', amount: '100' },]
後來我發現reduce
方法,但它只返回最高week_number
值的對象。
var max = dates.reduce(function(prev, current) {
return (prev.week_number > current.week_number) ? prev : current
})
正如你所見,.filter
將完成工作。
非常感謝您提供的所有答案。你是最棒的!!!
比它應該表現出數組對象包含' '4'' –
我的意思是,如果只有一個項目'WEEK_NUMBER:' 4''和多個'WEEK_NUMBER:「3 ''? – RomanPerekhrest
如果你可以保證列表是'week_number'排序,那麼你所需要做的就是在最後開始一個循環,並在'week_number'中斷時包含'week_number:'max'' –