javascript - 我收到单元测试错误的原因是什么?
问题描述
function generateHashtag(str) {
if (str.trim().length > 0 && str.trim().length < 140) {
return '#' + str.split(' ').map((word) => word.substring(0, 1).toUpperCase() + word.substring(1, word.length)).join('')
} else
return false;
}
如果最终单词长于 140 ,则应返回 false 。仅在此测试中给出错误:
Test.assertEquals(generateHashtag("code" + " ".repeat(140) + "wars"), "#CodeWars")
Expected: '#CodeWars', instead got: false
解决方案
您还需要从字符串中间删除空格(使用replace
正则表达式很容易):
function generateHashtag(str) {
const removedWhitespace = str.replace(/ /g, '');
if (removedWhitespace.length > 0 && removedWhitespace.length < 140) {
return '#' + str.split(' ').map((word) => word.substring(0, 1).toUpperCase() + word.substring(1, word.length)).join('')
} else
return false;
}
console.log(generateHashtag("code" + " ".repeat(140) + "wars"));
推荐阅读
- flutter - 在 vs 代码中更改 iOS 模拟器名称
- .net-core - 特定于环境的应用程序设置未加载其数据
- github - 如何删除 Github Desktop 中的提交历史记录?
- sql - Web API - 结果不一致
- java - 需要帮助设计“查找我的 iPhone”式应用程序
- java - 附加非空字符串的优雅方式
- react-native - 用户滑动 react-native 时获取新数据
- python-3.x - 406 错误/使用 Eventbrite 搜索 API 响应
- python - 如何检查 S3 前缀是否对应于文件或文件夹?
- python - 使用 pygame libray 的简单 python 游戏的问题