我是初学者,需要您的帮助..
这是我为打印“签证”而写的。但是它说未定义
调用函数后,我想返回“ Visa” ..但是它不起作用..
function detectNetwork(cardNumber) {
function visa() {
let data = ["4","13","16"]
for (let i of data ) {
if ( cardNumber[0] === i && cardNumber.length === 19 ) {
return "Visa"
}
}
}
}
// detectNetwork('4123456789012')
// The 'Diner's Club' card number always starts with 38 or 39, and is a 14 digit number.
// 'American Express' card numbers always start with 34 or 37, 15 digits
// Visa card numbers always start with 4 and are 13, 16, or 19 digits long.
// MasterCard card numbers are always 16 digits, beginning with 51, 52, 53, 54, or 55.
// ex) detectNetwork('39345678901234') // 'Diner's Club'
// ex) detectNetwork('343456789012345') // 'American Express'
// ex) detectNetwork('4123456789012345678') // 'Visa'
// ex) detectNetwork ('5112345678901234') // 'MasterCard'
我只希望detectNetwork()整理其中的每个功能
给出一个数字,“ detectNetwork”返回传入的数字是Diner's Club还是“ American Express”,“ Visa”或“ MasterCard”
function detectNetwork(cardNumber) {
if ( cardNumber.length === 14 ) {
let num1 = cardNumber.slice(0,2);
if ( num1 === "38" || num1 === "39" ) {
return "Diner's Club";
}
} else if ( cardNumber.length === 15 ) {
let num2 = cardNumber.slice(0,2) ;
if (num2 === "34" || num2 === "37" ) {
return "American Express";
} else if (cardNumber.length === 19 || cardNumber.length === 13 || cardNumber.length === 16 ) {
if ( cardNumber[0] === "4" ) {
return "Visa";
} else if ( cardNumber.length === 16 ) {
let mastData = ["51", "52", "53", "54","55"];
for (let i of mastData ) {
if (mastData === i ) {
return "MasterCard"
}
}
}
}
}
}
答案 0 :(得分:0)
您的函数detectNetwork仅定义签证功能,它不会以任何方式调用或使用其返回值。
要使用Visa()的返回值,您既需要调用它,又要以某种方式使用返回值。
只要将visa();
添加到您的检测网络功能的底部,该功能应该可以调用该功能。然后,您需要确定对返回值要做什么。您可以将其分配给变量,将其记录到控制台,将其传递给另一个函数,简单地将其返回,或者使用返回值通常执行的任何其他操作。一些例子是:
let value = visa(); // Save to variable
console.log(visa()); // Log return value to console
doSomething(visa()); // Pass value to another function
return visa(); // Returns the value from visa
答案 1 :(得分:0)
您可以如下修改代码:
嵌套的Visa函数已被省略,数字的长度已增加到19,并添加了console.log以显示结果。
总而言之,您不清楚要做什么,您想知道一个号码是否可以有效用作Visa卡吗?
function detectNetwork(cardNumber) {
let data = [4,13,16]
for (let i of data ) {
if ( cardNumber[0] == i && cardNumber.length == 19 ) {
console.log("Visa");
return "Visa"
}
}
}
detectNetwork('4123456789012789012')