уничтожение того На codewars, есть следующий вопрос:Объяснение на
Описание:
западные пригороды Крокет Клуб имеет две категории членства, старший и Open. Они хотели бы, чтобы ваша помощь была заполнена анкетой, которая сообщит потенциальным участникам, какая категория будет размещена.
Чтобы быть старшим, члену должно быть не менее 55 лет и иметь гандикап, превышающий 7. В этом клубе для крокет, гандикапы варьируются от -2 до +26; чем лучше игрок, тем ниже гандикап.
Входной
Ввод будет состоять из списка списков, содержащих два элемента каждый. Каждый список содержит информацию для одного потенциального участника. Информация состоит из целого числа для возраста человека и целого числа для гандикапа человека.
Пример ввода
[[18, 20], [45, 2], [61, 12], [37, 6], [21, 21], [78, 9 ]]
Выход
Выход будет состоять из списка строковых значений (в Haskell: Open или старший) с указанием того, соответствующий член должен быть помещен в сени или или открытой категории.
Результат
[ "Открыть", "Открыть", "старший", "Открыть", "Открыть", "старший"]
Один ответ был красивый в своей простоте:
function openOrSenior(data) {
return data.map(([age, handicap]) => (age > 54 && handicap > 7) ? 'Senior' : 'Open');
}
Это делает использование деструктуризации, и хотя я прочитал на нем, у меня не очень хорошее понимание как это работает. Итак, вот вопрос: что здесь происходит? Как это работает (в простейших условиях)?
Что именно неясно? – melpomene
Параметр считается кортежем (двухэлементный массив), первый элемент которого присваивается «age», а второй - «гандикап». –
Что неясно, как именно он сопоставляет его с возрастом и гандикапом. Что он делает?Карта берет функцию, поэтому по существу у нас есть функция ([возраст, гандикап]) {}, переданная функции карты. карта действует на массив данных, для каждого элемента, который является массивом сам по себе. Является ли это чем-то большим, чем назначение того, что находится в массиве-члене для переменных? –