Я делал кодовое ката, которое включает в себя множество футбольных оценок, например
["3:1", "2:2"] (Total points here would be 4, 3 + 1)
и применяя некоторые правила, а затем суммируя баллы. Одним из решений было:
const points = g => g.reduce((a, [x, _, y]) => a + (x > y ? 3 : x == y), 0)
Для пояснения, правила таковы: если 1-е значение больше 2-го, возвращают 3, если равно 1, возвращают 0, в противном случае возвращают 0, аналогично системе подсчета очков в футбольном матче.
Как в этом случае работает часть "x == y", здесь действует правило, что если "x == y", то должна быть возвращена одна точка.
Если кто-то может объяснить это простым способом на примере, это помогло бы мне, спасибо.
В примечании, если кто-то может объяснить «[x, _, y]», я также был бы признателен за это. Я понимаю, что он должен представлять текущий элемент в массиве, но текущий элемент - это строка, а не массив, так что здесь происходит?