为什么我的函数无法通过测试代码?

时间:2016-11-20 21:56:36

标签: javascript

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位。该函数返回正确的输出。

我的问题是为什么当我使用测试环境时,代码无法通过。它说:
"您应该尝试将函数用于长度和前缀的每个组合,并确保它返回正确的网络。" 那是什么意思?有人有解释吗?

2 个答案:

答案 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"; 
}