function checkNumber(cardNumber) {
var prefix = cardNumber.slice(0,2);
if ((prefix === '38' || prefix === '39') && cardNumber.length === 14) {
return 'Diner\'s Club';
} else if ((prefix === '34' || prefix === '37') && cardNumber.length === 15) {
return 'American Express';
}
}
该函数接受一串信用卡号并返回其网络名称。 EX:用餐俱乐部网络总是以38或39开头,长14位......而美国运通网络总是以34或37开头,长15位。该函数返回正确的输出。
我的问题是为什么当我使用测试环境时,代码无法通过。它说:
"您应该尝试将函数用于长度和前缀的每个组合,并确保它返回正确的网络。"
那是什么意思?有人有解释吗?
答案 0 :(得分:0)
听起来好像你的功能不完整。无论您使用何种测试环境,都要对除您提供的两个选项之外的其他事项执行一些测试。
答案 1 :(得分:0)
您所说的“代码测试”是什么?申请?
如果不满足前两个条件之一,则您的函数没有return
。
试试这个:
function checkNumber(cardNumber) {
var prefix = cardNumber.slice(0,2);
if ((prefix === '38' || prefix === '39') && cardNumber.length === 14) {
return 'Diner\'s Club';
} else if ((prefix === '34' || prefix === '37') && cardNumber.length === 15) {
return 'American Express';
}
else
{
return "Unknown Card";
}
}
或者这个(可能更好):
function checkNumber(cardNumber) {
var prefix = cardNumber.slice(0,2);
if ((prefix === '38' || prefix === '39') && cardNumber.length === 14) {
return 'Diner\'s Club';
} else if ((prefix === '34' || prefix === '37') && cardNumber.length === 15) {
return 'American Express';
}
return "Unknown Card";
}