javascript - 如何从函数中返回数据
问题描述
我正在尝试解决以下 Kata:
一个 2 位数字,如果将数字相加,则乘以 3,加 45 并反转。
我无法弄清楚如何从我的函数中返回数据,以便以后可以将值分配给 HTML 元素。
这是我的代码。
function daily() {
for(var j = 10; j < 100; j++) {
function teaser(num) {
var x = num;
var y = x.toString().split("");
if(y.length == 2) {
var sum = parseInt(y[0]) + parseInt(y[1]);
if(sum * 3 == x) {
console.log(x + " is equal to 3 times " + sum);
var addFortyFive = x + 45;
console.log("Adding 45 to " + x + " gives " + addFortyFive);
var reversal = parseInt(addFortyFive.toString().split('').reverse().join(''));
console.log("'The 2 digit number " + x + ", is 3 times the sum (" + sum + ") of its digits. If 45 is added to " + x + ", the result is " + addFortyFive + ". If the digits are reversed, the number is... " + reversal + ".");
}
} else {
console.log("Not a 2 digit Number!!");
}
}
teaser(j);
}
}
解决方案
根据您的问题,我猜您reversal
每天都需要对函数的价值进行循环。
建议您从 for-loop 中取出函数预告片,这将使代码更加简洁易懂,您可以这样做:
function daily() {
for(var j = 10; j < 100; j++) {
var teaser = teaser(j);
// Can now use anything returned from teaser function here
}
}
function teaser(num) {
var x = num;
var y = x.toString().split("");
if(y.length == 2) {
var sum = parseInt(y[0]) + parseInt(y[1]);
if(sum * 3 == x) {
console.log(x + " is equal to 3 times " + sum);
var addFortyFive = x + 45;
console.log("Adding 45 to " + x + " gives " + addFortyFive);
var reversal = parseInt(addFortyFive.toString().split('').reverse().join(''));
console.log("'The 2 digit number " + x + ", is 3 times the sum (" + sum + ") of its digits. If 45 is added to " + x + ", the result is " + addFortyFive + ". If the digits are reversed, the number is... " + reversal + ".");
return reversal;
}
} else {
console.log("Not a 2 digit Number!!");
return false;
}
}
如果不想取消功能,那么你可以这样做:
function daily() {
for(var j = 10; j < 100; j++) {
function teaser(num) {
var x = num;
var y = x.toString().split("");
if(y.length == 2) {
var sum = parseInt(y[0]) + parseInt(y[1]);
if(sum * 3 == x) {
console.log(x + " is equal to 3 times " + sum);
var addFortyFive = x + 45;
console.log("Adding 45 to " + x + " gives " + addFortyFive);
var reversal = parseInt(addFortyFive.toString().split('').reverse().join(''));
console.log("'The 2 digit number " + x + ", is 3 times the sum (" + sum + ") of its digits. If 45 is added to " + x + ", the result is " + addFortyFive + ". If the digits are reversed, the number is... " + reversal + ".");
return reversal;
}
} else {
console.log("Not a 2 digit Number!!");
return false;
}
}
var teaser = teaser(j);
// Can now use anything returned from teaser function here
}
}
推荐阅读
- python - 函数参数打包和解包 Python
- javascript - javascript中的边距条件
- python - 当酒店访客未添加有效的电子邮件地址时,我想引发 TypeError
- r - 使用 data.table 移位回收向量值,而不是使用 fill=NA 填充
- vba - VBA:从 Outlook 中与 Access 交互
- c# - Identity Server 4 - IDX10630:PII 被隐藏
- python - python 正则表达式匹配文件名但得到无
- go - 即使不再维护,我还能继续使用 mgo 吗?
- linux - 如何在不使用 ls 命令的情况下获取大目录的文件列表(90GB)
- mongodb - Mongodb:其中一个字段不区分大小写的复合索引