首页 > 解决方案 > 给定一个字符串,返回一个字符串

问题描述

所以基本上我想用一条消息返回字符串。

这就是我到目前为止所拥有的,为什么我的名字没有定义我有一系列运行的测试,它应该为第一个测试返回一个空的强。

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."
  }
};

标签: javascriptfor-loopif-statement

解决方案


在您的示例中,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'));


推荐阅读