提问者:小点点

我的函数没有返回预期的输出


我写了一个函数,如果前半个数字的和等于后半个数字的和,就必须返回。 我的代码怎么了? 谢谢你帮我。

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); 
}

共1个答案

匿名用户

不能访问数组之类数字的数字。 首先将其转换为字符串,然后使用扩展语法将其转换为数字数组。

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); 
}