【问题标题】:Javascript code challenge not passingJavascript代码挑战未通过
【发布时间】:2015-10-15 20:41:15
【问题描述】:

给定一个字符串或数字,编写一个函数tea42,将字符串或数字作为输入,并返回一个字符串,其中每个“2”字符或数字都被替换为t。 测试用例是:

Test.assertEquals(tea42(2), 't', 'Twos you lose!') 
Test.assertEquals(tea42('2'), 't', 'Twos you lose!')
Test.assertEquals(tea42(102), '10t', 'Twos you lose!')
Test.assertEquals(tea42('m2'),'mt', 'Twos you lose!')
Test.assertEquals(tea42('pre2ty'),'pretty', 'Twos you lose!')

这是我的代码:

function tea42(input) {
  for (i =0; i <= input.length; i++) {
    if (input[i] === "2") {
      return (input.replace( "2", "t"));
    } 
  }
}

【问题讨论】:

  • 你遇到了什么错误?
  • 你没有问问题。
  • 我的猜测是您需要将input 转换为字符串。如input = input + '';

标签: javascript function console


【解决方案1】:

您不需要for循环,只需检查输入中是否有2(使用input+""将其转换为字符串以便能够使用indexOf进行检查

function tea42(input) {
    var output = input + "";
    if (output.indexOf("2") !== -1) output = output.replace(/2/g, "t");
    return output;
}

【讨论】: