我试过,但我的程序似乎不起作用

时间:2017-12-23 04:09:46

标签: javascript html

我创建了一个将英语翻译成猪拉丁语的系统,但它不起作用。问题是变量fl没有显示。有谁知道如何解决这个问题?

function piglatinify() {
  var word = document.getElementById("textbox").value;
  var fl = word.substr(1, 1);
  var wordwithoutfl = word.substr(2, 999);
  var piglatinword = wordwithoutfl.concat(fl);
  var piglatinword = piglatinword.concat("ay");
  document.write(piglatinword);
}
<textarea id="textbox"></textarea><br>
<button onclick="piglatinify()">See it in pig latin...</button>

2 个答案:

答案 0 :(得分:0)

substr()方法的length参数是可选的。改变这个:

var wordwithoutfl = word.substr(2, 999);

到此:

var wordwithoutfl = word.substr(2);

此外,缩小这些行:

var piglatinword = wordwithoutfl.concat(fl);
var piglatinword = piglatinword.concat("ay");

到此:

var piglatinword = wordwithoutfl + fl + "ay";

有两个原因:1)这使得你没有声明变量piglatinword两次,2)“+”运算符比concat()方法具有更好的性能(参见{{3}在Mozilla开发者网络上。)

答案 1 :(得分:0)

一个简短的方法是:

    function piglatinify() {
      var word = document.getElementById("textbox").value;
      var piglatinword = word.substr(1) + word.substr(0, 1) + "ay";
      document.write(piglatinword);
    }

另外,请记住Javascript从0开始计数,因此要获得第一个字母,您需要执行substr(0,1)。 substr(1,1)会给你第二个字母。

word.substr(2,999)可以更改为word.substr(2),因为length参数是可选的,但是这将获得字符串,减去前2个字母(qwerty =&gt; erty)。因此,您需要将其设为word.substr(1)。