繁体   English   中英

我的 function 没有返回预期的 output

[英]My function doesn't return the expected output

如果前半部分数字的总和等于后半部分的总和,我写了一个必须返回的函数。 我的代码有什么问题? 谢谢你帮助我。

function isLucky(n) {
var digits = (n).toString(10).split("").map(Number)
var k = digits.length; 
var a = 0;
var b = 0;
for(let x = 0; x<k/2; x++){
    a+=n[x];
}
for(let x = k/2; x<k; x++){
    b+=n[x];
}
return (a===b); 
}

您无法访问数组等数字的数字。 首先将其转换为字符串,然后使用扩展语法将其转换为数字数组。

function isLucky(n) {
    var digits = [...(n).toString(10)]
    var k = digits.length; 
    var a = 0;
    var b = 0;
    for(let x = 0; x<k/2; x++){
        a += +digits[x];
    }
    for(let x = Math.floor(k/2); x<k; x++){
        b += +digits[x];
    }
    return (a===b); 
}

这是一个小代码,用于比较数字的第 1 部分和第 2 部分的数字总和:

试试看。 它将打印两半和比较结果。

您可以将代码转换为简单的 function。

希望能帮助到你。

 let MyNumber = 1234.5678; // the Number MyNumber = (""+MyNumber).split("."); // Split the number let first_half=0, Second_half=0, a; // Some vars a=[...MyNumber[0]].map(e => first_half+=+e); // Sum the first half a=[...MyNumber[1]].map(e => Second_half+=+e) // Sum the 2nd half console.log(first_half, Second_half) // Print 1st and 2nd halves console.log(first_half == Second_half) // Test if equal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM