选出select为true 并且id最大的一项,返回该label
evaluate: [{
id: 1,
select: true,
label: '较差'
},
{
id: 2,
select: true,
label: '差'
},
{
id: 3,
select: true,
label: '一般'
},
{
id: 4,
select: false,
label: '满意'
},
{
id: 5,
select: false,
label: '十分满意'
}
],
先 filter 再 reduce 需要遍历两次,可以直接在 reduce 里处理掉
如果原数组有序(按 id 排序),那么可以反向查找,这个直接用 for 循环来完成
要在不改变原数组的情况下反向再查找也是可以的,但是不应该使用 filter,它会遍历完,应该使用 find,的到即止。
但是跑下来看性能就知道,反向 for 循环查找最快,因为它假设有序,甚至都不用遍历完就能找到需要的元素。
其实是直接 reduce 的方案,毕竟这个是假设无序的,需要完整遍历。但它比先 filter 再 reduce 快了一倍。
最慢的是 reverse,因为要复制一个数组,再反向,再查找。