Вот функция:
function maxBatch(reqs) {
reqs = reqs.map(b => ({
id: b['BTCH#BD'],
type: b['BTYPEBD']
}));
return reqs.reduce((max, o) => parseInt(o['BTCH#BD'], 10) > parseInt(max['BTCH#BD'], 10) ? o : max, reqs[0]);
}
Результат оператора выбора querySync отправляется в качестве аргумента этой функции.Я понимаю, что массив reqs переделывается в новый массив с каждым элементом в массиве со свойствами 'BTCH # BD' и 'BTYPEBD', а их соответствующие значения реорганизуются в id: value1 и type: value2.Где я запутался, так это заявление о возвращении.
У меня не было слишком большого опыта работы с .reduce (), но поиск в Интернете в режиме онлайн говорит мне, что он в основном обрабатывает каждый элемент в массиве в одно значение в соответствии с условиями.Похоже, что метод redu () сравнивает размер между исходным и максимальным аргументами, и если оригинал больше, он принимает оригинал, а если max равен или больше, он принимает максимальное значение и самый первый элемент в массиве reqs.
Для справки, я console.logged значение результирующего возвращенного объекта, и он вернулся:
maxObj: 56978, OP2.
Исходный массив, который был отправлен был
rows: [{"BTCH#BD":56978,"BTYPEBD":"OP2"},
{"BTCH#BD":56978,"BTYPEBD":"OP2"},
{"BTCH#BD":56978,"BTYPEBD":"OP2"},
{"BTCH#BD":56978,"BTYPEBD":"OP2"},
{"BTCH#BD":56978,"BTYPEBD":"OP2"}]