如何翻转一个单词并检查它是否是一个回文以及是否在javascript中传递了一个空字符串。
这是我提出的但没有按预期工作的。
var Questions = _formManager
.Question.GetAll()
.Include(l => l.LinkFormQuestion)
.Where(l => l.LinkFormQuestion.Any(A => A.Form.Id == Guid.Parse("74103B08-8AE3-4DB7-8E21-110569D5D1D4")))
.Where(l => l.language == "FR")
.AsNoTracking()
.Select(l => new
{
Question=l.Question,
YesNo=l.YesNo,
Slider=l.Slider,
//Order=l.LinkFormQuestion.Where(x=>x.IdQuestion==l.Id).Select(x=>x.Order)
//Order=l.LinkFormQuestion.Select(x=>x.Order)
})
.ToList();
我想在测试时运行它,这是测试。
function reverseString(str) {
return str.split("").reverse().join("");
}
答案 0 :(得分:3)
前两个测试组中的测试没有正确测试。
为什么这是真的?:
expect(reverseString('')).toEqual(null);
还是这个?
expect(reverseString('anna')).toEqual(true);
您永远不会返回null
,也不会返回true
,但始终是一个字符串。空字符串的反向是空字符串。看起来您正在考虑另一个未包含的功能,可以称为isPalindrome
。它的定义可能是:
function isPalindrome(s) {
return s.length ? reverseString(s) === s : null;
}
现在,在前两个小组的测试中,将reverseString
的所有来电替换为isPalindrome
,它应该有效。
答案 1 :(得分:0)
您正在正确地反转字符串,但是您还没有抓住其他情况。
测试期望给定''
函数应返回null
。
鉴于回文tacocat
,该函数应返回true
。
答案 2 :(得分:0)
您需要以下内容:
function isPalindrome(str) {
if ((typeof str) === 'undefined' || str.trim().length === 0) {
return false;
}
var rev = str.split('').reverse().join('');
if (str === rev) {
return true;
}
return false;
}
您的实现会反转字符串,但需要处理其他情况。另一个问题是你的测试。您的功能应在测试中保持一致。它不应该根据测试改变其返回类型。所以,它应该总是返回布尔值或字符串。看来你的测试有不同的价值。