【发布时间】:2016-09-03 07:42:33
【问题描述】:
关于codewars,有如下问题:
说明:
西郊槌球俱乐部有两类会员,高级会员和公开会员。他们希望您提供一份申请表的帮助,该申请表将告诉潜在成员他们将被放置在哪个类别。
要成为资深会员,会员必须年满 55 岁且差点大于 7。在这个槌球俱乐部,差点范围从 -2 到 +26;球员越好,差点越低。
输入
输入将由一个包含两个项目的列表组成。每个列表都包含单个潜在成员的信息。信息由一个整数表示该人的年龄和一个整数表示该人的残障。
示例输入
[[18, 20],[45, 2],[61, 12],[37, 6],[21, 21],[78, 9]]
输出
输出将包含一个字符串值列表(在 Haskell 中:Open 或 Senior),说明相应的成员将被放置在 Senior 或 Open 类别中。
示例输出
[“公开”、“公开”、“高级”、“公开”、“公开”、“高级”]
一个答案很简单:
function openOrSenior(data) {
return data.map(([age, handicap]) => (age > 54 && handicap > 7) ? 'Senior' : 'Open');
}
它利用了解构,虽然我已经阅读过它,但我并没有真正了解它是如何工作的。那么问题来了:这里发生了什么?这是如何工作的(用最简单的术语来说)?
【问题讨论】:
-
究竟有什么不清楚的地方?
-
参数假设为元组(双元素数组),第一个元素赋值给
age,第二个元素赋值给handicap。 -
尚不清楚它是如何准确地将其映射到年龄和障碍的。它在做什么? Map 接受一个函数,所以本质上我们将 function([age, handicap]) { } 传递给 map 函数。 map 作用于数据数组,对于每个元素,它本身就是一个数组。它只是将成员数组中的内容分配给变量吗?
-
解构就是这个意思。
标签: javascript