gpt4 book ai didi

javascript - 对于较大的数组 - 返回 NaN 而不是数字

转载 作者:行者123 更新时间:2023-11-28 14:27:18 25 4
gpt4 key购买 nike

我应该编写一个函数,以字符串的形式接收两个数字。将第一个字符串取第二个字符串的幂;返回值应该是结果的最后一位。

举个例子,lastDigit("5", "2") 将返回 5,因为 5 的 2 次方等于 25,最后一位数字是5.

我的函数是这样写的:

   const lastDigit = (str1, str2) => {  
const [head, ...tail] = Math.pow(parseInt(str1), parseInt(str2)).toString().split("").map(str => parseInt(str)).reverse();
return head;
}

对于较小的数字,该函数可以正常工作。但如果数字变高,它就会以某种方式返回

NaN

如何解决这个问题?

最佳答案

问题是有些数字,比如 53 的 230 次方,对于 Javascript 来说太大了,无法处理:它们会给你无穷大:

console.log(53 ** 230);

然后,在您的代码中,当您尝试parseInt一个字母,例如Infinity中的y时,它会失败并给出 NaN

作为解决方法,您可以将第一个数字相乘一次一个,使用模 10 仅提取个位,然后根据需要重复多次:

const lastDigit = (str1, str2) => {
let num = Number(str1);
const initial = num;
const totalIterations = Number(str2);
for (let i = 1; i < totalIterations; i++) {
num = (num * initial) % 10;
}
return num;
}
console.log(lastDigit("53", "230"));

关于javascript - 对于较大的数组 - 返回 NaN 而不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52732118/

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