这是原始数组,过滤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'' –