typescript - 代码问题解决方案在 TS 操场上有效,但在第三方编码挑战网站上失败
问题描述
以下是我根据测试代码给出的任务,我应该只在它是一个数字时返回。
16 --> 1 + 6 = 7
942 --> 9 + 4 + 2 = 15 --> 1 + 5 = 6
132189 --> 1 + 3 + 2 + 1 + 8 + 9 = 24 --> 2 + 4 = 6
493193 --> 4 + 9 + 3 + 1 + 9 + 3 = 29 --> 2 + 9 = 11 --> 1 + 1 = 2
以下是我对上述任务的解决方案。
function digitalRoot(n:number){
var arr = n.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum = arr.reduce(function(a,b){
return a +b;
},0)
//console.log(sum)
var arr2 = sum.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum2 = arr2.reduce(function(a,b){
return a + b;
},0)
var arr3 = sum2.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum3 = arr3.reduce(function(a,b){
return a + b;
},0)
if(sum < 9 ){
console.log(sum2)
return sum;
}else if(sum2 < 9){
console.log(sum)
return sum2;
}else{
console.log(sum3)
return sum3;
}
};
在 TS 操场上它工作正常,根据上述任务给我正确的答案,但在第三方网站上,我收到以下错误:
/runner/node_modules/ts-node/src/index.ts:307
throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
^
TSError: ⨯ Unable to compile TypeScript
spec.ts (1,27): File '/home/codewarrior/solution.ts' is not a module. (2306)
at getOutput (/runner/node_modules/ts-node/src/index.ts:307:15)
at /runner/node_modules/ts-node/src/index.ts:336:16
at Object.compile (/runner/node_modules/ts-node/src/index.ts:498:11)
at Module.m._compile (/runner/node_modules/ts-node/src/index.ts:392:43)
at Module._extensions..js (module.js:635:10)
at Object.require.extensions.(anonymous function) [as .ts] (/runner/node_modules/ts-node/src/index.ts:395:12)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at /runner/node_modules/mocha/lib/mocha.js:231:27
at Array.forEach (<anonymous>)
at Mocha.loadFiles (/runner/node_modules/mocha/lib/mocha.js:228:14)
at Mocha.run (/runner/node_modules/mocha/lib/mocha.js:514:10)
at Object.<anonymous> (/runner/node_modules/mocha/bin/_mocha:480:18)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Function.Module.runMain (module.js:665:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
解决方案
你没有写类型,这就是问题所在。试试这个。
export const digitalRoot = (n:number):number => {
var arr = n.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum = arr.reduce(function(a,b){
return a +b;
},0)
//console.log(sum)
var arr2 = sum.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum2 = arr2.reduce(function(a,b){
return a + b;
},0)
var arr3 = sum2.toString(10).replace(/\D/g, '0').split('').map(Number);
var sum3 = arr3.reduce(function(a,b){
return a + b;
},0)
if(sum < 9 ){
console.log(sum2)
return sum;
}else if(sum2 < 9){
console.log(sum)
return sum2;
}else{
console.log(sum3)
return sum3;
}
};
推荐阅读
- python - 用于修补子分段的 AWS X-Ray Python 开发工具包元数据
- c# - C# MSBuild 不包括 NuGet 包(适用于 Visual Studio 17)
- azure - 在 Azure Front Door 中重写 URL 路径 - 错误 HTTP 404
- python - 保留字符串 Pandas 中的数值
- c# - LINQ 不返回数据
- arrays - Django Queryset 按确切字符串过滤数组字段
- c# - 找不到类型或命名空间名称“UI”。c# Unity3d
- c# - 加载场景后场景设计(颜色)发生变化
- matlab - 在 MATLAB 中以特定方式合并和添加两个列向量
- javascript - 如何获取表单数据并将其发送到 discord webhook?