Javascript 如何从函数返回数据

Javascript 如何从函数返回数据,javascript,return,Javascript,Return,我试图解决以下问题: 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

我试图解决以下问题:

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);
   }
}
function daily(){
对于(var j=10;j<100;j++){
函数摘要(num){
var x=num;
变量y=x.toString().split(“”);
如果(y.length==2){
var sum=parseInt(y[0])+parseInt(y[1]);
如果(和*3==x){
控制台日志(x+“等于3倍”+总和);
var addFortyFive=x+45;
log(“将45添加到“+x+”中会得到“+addFortyFive”);
var reversion=parseInt(addFortyFive.toString().split(“”).reverse().join(“”));
console.log(“'2位数字“+x+”,是其数字总和(“+sum+”)的3倍。如果将45添加到“+x+”,则结果为“+addFortyFive+”。如果数字颠倒,则数字为…+Reversion+”);
}
}否则{
log(“不是两位数!!”;
}
}
挑逗者(j);
}
}

从函数返回内容非常简单

只需将
return
语句添加到函数中

函数sayHello(名称){
返回“Hello”+name+“!”;
}

log(sayHello('David'))从函数返回某些内容非常简单

只需将
return
语句添加到函数中

函数sayHello(名称){
返回“Hello”+name+“!”;
}

log(sayHello('David'))正如在问题的评论中所说的,因为(很可能)您将有多个符合您的条件的答案,所以您需要将这些答案存储在一个数组中。您的
striser
函数返回单个结果,其中
daily
将检查您范围内的所有数字

function daily() {
    var results = [];
   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 + ".");

                    // Here you have one that is correct, so return it:
                    return num;
               } else {
                    // Make sure we don't return undefined for when the sum 
                    // times three doesn't equal the number.
                    return null;
                }
           } else {
               console.log("Not a 2 digit Number!!");
                return null;
           }
       }
       var answer = teaser(j);

        if (answer !== null) {
            results.push(answer);
        }
   }

    return results;
}
function daily(){
var结果=[];
对于(var j=10;j<100;j++){
函数摘要(num){
var x=num;
变量y=x.toString().split(“”);
如果(y.length==2){
var sum=parseInt(y[0])+parseInt(y[1]);
如果(和*3==x){
控制台日志(x+“等于3倍”+总和);
var addFortyFive=x+45;
log(“将45添加到“+x+”中会得到“+addFortyFive”);
var reversion=parseInt(addFortyFive.toString().split(“”).reverse().join(“”));
console.log(“'2位数字“+x+”,是其数字总和(“+sum+”)的3倍。如果将45添加到“+x+”,则结果为“+addFortyFive+”。如果数字颠倒,则数字为…+Reversion+”);
//这里有一个是正确的,请返回:
返回num;
}否则{
//确保当总和
//三乘以三不等于这个数。
返回null;
}
}否则{
log(“不是两位数!!”;
返回null;
}
}
var-answer=trister(j);
如果(回答!==null){
结果:推送(应答);
}
}
返回结果;
}

正如在问题的评论中所说的,因为(很可能)您将有多个符合您条件的答案,所以您需要将这些答案存储在一个数组中。您的
striser
函数返回单个结果,其中
daily
将检查您范围内的所有数字

function daily() {
    var results = [];
   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 + ".");

                    // Here you have one that is correct, so return it:
                    return num;
               } else {
                    // Make sure we don't return undefined for when the sum 
                    // times three doesn't equal the number.
                    return null;
                }
           } else {
               console.log("Not a 2 digit Number!!");
                return null;
           }
       }
       var answer = teaser(j);

        if (answer !== null) {
            results.push(answer);
        }
   }

    return results;
}
function daily(){
var结果=[];
对于(var j=10;j<100;j++){
函数摘要(num){
var x=num;
变量y=x.toString().split(“”);
如果(y.length==2){
var sum=parseInt(y[0])+parseInt(y[1]);
如果(和*3==x){
控制台日志(x+“等于3倍”+总和);
var addFortyFive=x+45;
log(“将45添加到“+x+”中会得到“+addFortyFive”);
var reversion=parseInt(addFortyFive.toString().split(“”).reverse().join(“”));
console.log(“'2位数字“+x+”,是其数字总和(“+sum+”)的3倍。如果将45添加到“+x+”,则结果为“+addFortyFive+”。如果数字颠倒,则数字为…+Reversion+”);
//这里有一个是正确的,请返回:
返回num;
}否则{
//确保当总和
//三乘以三不等于这个数。
返回null;
}
}否则{
log(“不是两位数!!”;
返回null;
}
}
var-answer=trister(j);
如果(回答!==null){
结果:推送(应答);
}
}
返回结果;
}

根据您的问题,我猜您需要
反转
循环的每日函数值

建议您将函数摘要从循环内部取出,这将使代码更加清晰易懂,您可以这样做:

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(){
对于(var j=10;j<100;j++){
变量梳理器=梳理器(j);
//现在可以在这里使用从摘要函数返回的任何内容
}
}
函数摘要(num){
var x=num;
变量y=x.toString().split(“”);
如果(y.length==2){
var sum=parseInt(y[0])+parseInt(y[1]);
如果(和*3==x){
控制台日志(x+“等于3倍”+总和);
var addFortyFive=x+45;
log(“将45添加到“+x+”中会得到“+addFortyFive”);
function daily() {
var results = [];
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 num;
                // Here you have one that is correct, so return it:
           } else {
                console.log(num + " does not fulfill function parameters");
                // This is just so you can visualize the numbers
                return null;
            }
        }
    }
    var answer = teaser(j);
    if(answer != null) {
        results.push(answer);
    }
}
return results;