【发布时间】:2019-08-08 18:11:01
【问题描述】:
尝试创建一个函数来检查一个大数字(即每个数字都小于或等于其右侧的数字,例如 123、059 等)。
以下代码是问题:
const n = parseInt(readline());
if (n.toString().length === 1)
console.log('true');
else
{
var z = n.toString().split('');
console.log(z.reduce((a, b) => b > a));
}
此测试失败:01223047(应返回 false 时返回 true)。
它适用于许多其他测试,但不是这个值。不应该减少测试每一对并返回真/假吗?如果有一个错误,它应该返回错误,对吗?我是否错误地使用了 reduce?是否可以使用另一个函数来简化此测试而不是编写循环?
【问题讨论】:
-
01223047是337447作为整数,您需要将n作为字符串并将它们解析为 reduce 函数中的 int -
还有:你的牙套有点怪...
-
从
readline解析字符串然后反复将其转换回字符串似乎很奇怪...如果您的示例中有一个前导,那就特别奇怪数字“0”,因为这样做会删除前导数字。
标签: javascript arrays reduce shorthand