在这个对象数组中,如何找到最高的select DATEDIFF(
DAY,
(select BuildCMPLTDT from TrackerTest where TicketID='123456' and ValidCMPLTDT = '1900-01-01 00:00:00.000'),
(select ValidCMPLTDT from TrackerTest where TicketID='123456' and BuildCMPLTDT = '1900-01-01 00:00:00.000')
) AS DateDiff
,其中groupAvgNum
?
大概不会有40个以上的对象,所以我可以遍历每个对象。有没有更快的方法?
gradeGender == '7G'
答案 0 :(得分:1)
使用减少
var a = [{
groupID: '27093',
gradeGender: '6B',
groupAvgNum: 4.75
},
{
groupID: '27159',
gradeGender: '6G',
groupAvgNum: 6
},
{
groupID: '27094',
gradeGender: '7B',
groupAvgNum: 10.13
},
{
groupID: '27182',
gradeGender: '7G',
groupAvgNum: 10.38
},
{
groupID: '27179',
gradeGender: '7G',
groupAvgNum: 7.25
},
{
groupID: '27184',
gradeGender: '7G',
groupAvgNum: 7.13
},
{
groupID: '27183',
gradeGender: '7G',
groupAvgNum: 5.5
},
{
groupID: '27100',
gradeGender: '8B',
groupAvgNum: 5.13
},
{
groupID: '27101',
gradeGender: '8B',
groupAvgNum: 7.63
},
{
groupID: '27103',
gradeGender: '8B',
groupAvgNum: 7.25
},
{
groupID: '27187',
gradeGender: '8G',
groupAvgNum: 6.5
},
{
groupID: '27188',
gradeGender: '8G',
groupAvgNum: 4
},
{
groupID: '27186',
gradeGender: '8G',
groupAvgNum: 9
}
]
console.log(a.reduce((acc, a) => {
if (a.gradeGender == '7G')
a.groupAvgNum > acc ? acc = a.groupAvgNum : acc = acc;
return acc
}, 0))
答案 1 :(得分:1)
array.reduce((acc, item) => {
return item.gradeGender === '7G' && item.groupAvgNum > acc
? item.groupAvgNum
: acc;
}, 0);
答案 2 :(得分:1)
如果您正在寻找一种更具可读性的解决方案,请尝试结合使用以下操作:
array.filter(obj => {
return obj.gradeGender === '7G';
}).sort((o1, o2) => {
return o1.groupAvgNum > o2.groupAvgNum;
})[0];
请注意,这对于大型阵列而言远非有效,尽管对于如此简短的列表,其他开销可能对整体性能更为重要。