javascript - 给定一个字符串,返回一个字符串
问题描述
所以基本上我想用一条消息返回字符串。
这就是我到目前为止所拥有的,为什么我的名字没有定义我有一系列运行的测试,它应该为第一个测试返回一个空的强。
export const twoFer = (name) => {
let saying = "One for" + name + "," + "One for me"
let greeting = saying
if (name === '') {
let greeting = "One for you, One for me"
} else {
let greeting = "One for" + name + ",One for me"
}
return greeting;
};
我认为提供测试也是有用的,所以..
import { twoFer } from './two-fer'
describe('twoFer()', () => {
test('no name given', () => {
expect(twoFer()).toEqual("One for you, one for me.")
})
xtest('a name given', () => {
expect(twoFer("Alice")).toEqual("One for Alice, one for me.")
})
xtest('another name given', () => {
expect(twoFer("Bob")).toEqual("One for Bob, one for me.")
})
})
编辑最终解决方案:
export const twoFer = (name = null) => {
if (!name) {
return "One for you, one for me."
} else {
return "One for " + name + "," + " one for me."
}
};
解决方案
在您的示例中,name
不是空字符串,而是undefined
. 取而代之的是 try !name
,这对于undefined
、空字符串null
等将是真实的。
const twoFer = (name=null) => {
if (!name) {
return "One for you, One for me"
} else {
return "One for " + name + ", One for me"
}
};
console.log(twoFer());
console.log(twoFer(''));
console.log(twoFer('bob'));
推荐阅读
- java - Elasticsearch Java API 按数组中的字符串过滤
- swift - 将日期组件格式化为具有“n”个字符的字符串的直接方法
- video - ffmpeg concat 并保留元数据流
- c# - ObservableCollection 和 ProgressBar 不能一起工作
- java - 如何使用java连接到远程桌面上的ms sql server(需要用户登录名和密码)?
- mysql - Vb.Net - 使用 MySQL 存储过程的 DATE_FORMAT 上的“字典中不存在给定的键”
- python - 写入文件时使用额外内存的 Python 多处理
- javascript - javascript momentJS 在添加天数时回退到 js Date()
- reactjs - 创建 ReactJs Hello world 程序时出错
- swift - 为什么我使用 CASpringAnimation 时我的图像没有动画?