gpt4 book ai didi

javascript - 拆分数字并将它们全部相加 - JavaScript

转载 作者:行者123 更新时间:2023-12-03 04:02:32 25 4
gpt4 key购买 nike

我有一个函数,可以返回正数和负数的所有数字之和。

我使用split方法,先将其转换为字符串,然后使用reduce将它们全部相加。如果数字为负数,则第一位数字应计为负数。

function sumDigits(num) {
var output = [],
sNum = num.toString();

for (var i = 0; i < sNum.length; i++) {
output.push(sNum[i]);
}

return output.reduce(function(total, item){
return Number(total) + Number(item);
});

}
var output = sumDigits(1148);
console.log(output); // --> MUST RETURN 14

var output2 = sumDigits(-316);
console.log(output2); // --> MUST RETURN 4

它没有返回总和,而是返回4592 -1264

我做得对还是需要使用split函数?或者有更好的方法吗?

对不起,新手。

最佳答案

我认为您必须将其视为字符串并检查迭代字符串,检查“-”,当您发现一个字符时,抓取两个字符并转换为整数以推送到数组中。然后循环数组并对它们求和。当然,您可以边做边做,而不必费心将它们推送到阵列上。

function sumDigits(num) {
num = num + '';
var output = [];
var tempNum;
var sum = 0;

for (var i = 0; i < num.length; i++) {
if (num[i] === '-') {
tempNum = num[i] + num[i + 1];
i++;
} else {
tempNum = num[i];
}

output.push(parseInt(tempNum, 10));
}


for (var j = 0; j < output.length; j++) {
sum = sum + output[j];
}

return sum;
}

var output = sumDigits(1148);
console.log(output); // --> MUST RETURN 14

var output2 = sumDigits(-316);
console.log(output2); // --> MUST RETURN 4

关于javascript - 拆分数字并将它们全部相加 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44665074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com