Я использую Codewars и подобные для разминки. Когда я пытался писать решения максимально лаконично, мой коллега заметил, что моя функция (которая находит элемент массива, дающий наибольший результат при передаче в обратном вызове) определенно короткая, но неинтуитивная.

const maxBy = (arr, callback) => arr.reduce((max, el) => callback(el) > max.val ? {val: callback(el), el} : max, {val: -Infinity, el: undefined}).el;

Хотя краткость прекрасна, она не очень полезна, если это означает, что мой код не может быть легко разобран тем, кто смотрит на него в следующий раз. У Airbnb есть некоторые мнения по подобным случаям, но они немного менее подробные по сравнению с их руководством по функциям в целом. Тем не менее, их предложения могут иметь большое значение.

Во-первых, давайте добавим круглые скобки. Добавление скобок определенно помогает убрать запятую после max и перед вторым аргументом reduce.

const maxBy = (arr, callback) => (arr.reduce((max, el) => (callback(el) > max.val ? {val: callback(el), el} : max), {val: -Infinity, el: undefined}).el);

На самом деле здесь определены две функции: maxBy и анонимный обратный вызов для reduce. Давайте разобьем эти функции на отдельные строки.

const maxBy = (arr, callback) => (
  arr.reduce((max, el) => (
    callback(el) > max.val ? {val: callback(el), el} : max
  ), {val: -Infinity, el: undefined}).el
);

Намного лучше! Эта третья строка может приближаться к пределу того, что должно быть в одной строке. Мы можем немного отойти от Airbnb и разделить его на несколько строк.

const maxBy = (arr, callback) => (
  arr.reduce((max, el) => (
    callback(el) > max.val
      ? {val: callback(el), el}
      : max
  ), {val: -Infinity, el: undefined}).el
);

Не уверен насчет этого болтающегося .el в конце. Возможно, это не обязательно должно быть однострочное решение, но писать его именно так — забавно. Также всегда открыты для предложений.