我正在JavaScript测试中苦苦挣扎,我的答案没有通过,我不知道为什么?这是问题:
编写一个返回给定字符串反向的函数。尽管许多语言都具有内置功能来反转字符串,但是您应该手动进行操作,逐个字符地建立输出。例如,“ Hello”返回“ olleH”
这是我到目前为止所拥有的...
stringReverse = function(input) {
// Your code goes here
var inputA = input.split('');
var inputL = inputA.length;
var beta = new Array(inputL);
for (var i=0; i<inputL; i++) {
var alpha = inputA.pop();
beta.splice(i,1,alpha);
}
var newStr = beta.join('');
return console.log(newStr);
};
我的输出看起来正确,但是没有通过测试。我收到以下消息:
开始
olleHF AFF失败:1)解决方案测试Test1信息:预期的undefined等于'olleH'。堆:错误:未定义的期望值等于“ olleH”。在对象。 (/沙盒/鹿/SolutionSpec.js:7:40)2)SolutionTests Test2信息:预期未定义等于“ A”。堆:错误:预期未定义等于“ A”。在对象。 (/沙盒/鹿/SolutionSpec.js:11:36)3)解决方案测试Test3信息:预期未定义等于“”。堆:错误:未定义的期望值等于“”。在对象。 (/沙盒/鹿/SolutionSpec.js:15:35)3个规格,3个故障在0.014秒内完成
谢谢!
return console.log(newStr);
这将返回undefined
值。我想你的意思是:
return newStr;
将最后一行更改为return newStr
,而不是return console.log(newStr)
。当前,您的程序输出正确的答案,但不返回任何内容。测试仅查看返回值undefined
。
因此,这就是您的问题,您正在返回console.log(newStr)。这将运行console.log,该控制台没有输出,并且会返回缺少输出的状态,因此未定义。只是简单地返回newStr;
其原因是您返回的console.log返回值是未定义的!
更改:
return console.log(newStr);
to
console.log(newStr);
return newStr;
问候!
它是因为您正在控制台记录返回而不是返回newStr。
尝试此:
stringReverse = function(input) {
var inputA = input.split('');
var inputL = inputA.length;
var beta = new Array(inputL);
for (var i=0; i<inputL; i++) {
var alpha = inputA.pop();
beta.splice(i,1,alpha);
}
var newStr = beta.join('');
return newStr;
};
您也只能在一行中执行此操作:
stringReverse = function(input) {
return input.split("").reverse().join("");
}