在CodeWars上对新成员进行分类
要成为长者,成员必须至少55岁,并且让分差大于7。在这个槌球俱乐部中,让分范围是-2到+26;球员越好,让分越低。
输入 输入将包含一个列表列表,每个列表包含两个项目。每个列表都包含单个潜在成员的信息。信息由一个人的年龄的整数和一个人的障碍的整数组成。
我的代码跳过if部分;它只会返回“打开”,而不会返回“高级”
我已经在stackoverflow上寻找了类似的问题;但是,我在JavaScript中找不到一个(见过Java,CSS,HTML,Python等)。另外,已经问过的问题似乎更多地与if语句中的if语句有关,或者它们具有相反的问题,即跳过else语句。我尝试过切换“打开”和“高级”检查,但这不起作用。在将int与字符串一起使用之前,我遇到了问题,反之亦然,但是在这种情况下,我认为这不应该是问题,因为它们在这里都是整数。
function openOrSenior(data){
var array = [];
for(var i = 0; i < data.length; i++) {
var age = data[i[0]];
var handicap = data[i[1]];
if (age >= 55 && handicap > 7) {
array.push("Senior");
} else {
array.push("Open");
}
}
return array;
}
测试列表
Test.assertSimilar(openOrSenior([[45, 12],[55,21],[19, -2],[104, 20]]),['Open', 'Senior', 'Open', 'Senior']) => returned [['Open', 'Open', 'Open', 'Open'])
Test.assertSimilar(openOrSenior([[59, 12],[55,-1],[12, -2],[12, 12]]),['Senior', 'Open', 'Open', 'Open']) => returned [['Open', 'Open', 'Open', 'Open'])
答案 0 :(得分:2)
应用0、1索引时,需要对其进行更改以查看子数组
*(*(arr + i) + j)
var age = data[i][0];
var handicap = data[i][1];
答案 1 :(得分:0)
i
是一个数字,例如0,因此i[0]
是undefined
,因为数字没有属性。因此,data[i[0]]
与data[undefined]
相同,这可能不是您想要的。也许您想访问位置i
(data[i]
)处的数组并获取该数组的第一个值([0]
)吗?