Javascript 为什么我的代码跳过if语句而只返回else部分?JS
对CodeWars上的新成员进行分类 要成为资深会员,会员必须年满55岁,且残障程度大于7。在这个槌球俱乐部,障碍从-2到+26;运动员越优秀,障碍越小 输入 输入将包括一个列表,每个列表包含两个项目。每个列表包含单个潜在成员的信息。信息由一个表示人的年龄的整数和一个表示人的残疾的整数组成 我的代码跳过了if部分;它只返回“打开”,从不返回“高级” 我已经看过stackoverflow的类似问题;但是,我在JavaScript中找不到(已经看过java、css、html、python等)。此外,已经提出的问题似乎更多地与if语句中的if语句有关,或者在跳过else语句的情况下,它们有相反的问题。我尝试过切换“未结”和“高级”支票,但这不起作用。在将int与字符串一起使用之前,我遇到过一些问题,反之亦然,但我认为在本例中这不应该是一个问题,因为它们都是整数Javascript 为什么我的代码跳过if语句而只返回else部分?JS,javascript,if-statement,iteration,Javascript,If Statement,Iteration,对CodeWars上的新成员进行分类 要成为资深会员,会员必须年满55岁,且残障程度大于7。在这个槌球俱乐部,障碍从-2到+26;运动员越优秀,障碍越小 输入 输入将包括一个列表,每个列表包含两个项目。每个列表包含单个潜在成员的信息。信息由一个表示人的年龄的整数和一个表示人的残疾的整数组成 我的代码跳过了if部分;它只返回“打开”,从不返回“高级” 我已经看过stackoverflow的类似问题;但是,我在JavaScript中找不到(已经看过java、css、html、python等)。此外,
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;
}
i
是一个数字,例如0,因此i[0]
是未定义的
,因为数字没有属性。因此,执行data[i[0]]
与data[undefined]
相同,这可能不是您想要的。可能您想访问位于位置i
(data[i]
)的数组,并获取该数组的第一个值([0]
)?在应用0,1索引时,您需要更改它以查看子数组
var age = data[i][0];
var handicap = data[i][1];
函数openOrSenior(数据){
var数组=[];
对于(变量i=0;i=55岁和残疾>7岁){
array.push(“高级”);
}否则{
数组。推送(“打开”);
}
}
返回数组;
}
log(openOrSenior([45,12],[55,21],[19,2],[104,20]]);
log(openOrSenior([59,12],[55,-1],[12,-2],[12,12]])代码< >代码> >代码> i [ 0 ] <代码>,<代码> i [代码] >代码> i [ 1 ] <代码>和<代码> i [ 0 ] < /代码>总是等于<代码>未定义< /Cord> >我认为这是一个键入,所以投票以关闭为例。
var age = data[i][0];
var handicap = data[i][1];