【发布时间】:2012-04-24 22:24:42
【问题描述】:
因此,对于我的 cit 课程,我必须编写一个猪拉丁语转换器程序,但我对如何同时使用数组和字符串感到非常困惑。 转换规则很简单,只需将单词的第一个字母移到后面,然后加上ay。例如:英语中的地狱将是猪拉丁语中的 ellhay 到目前为止我有这个:
<form name="form">
<p>English word/sentence:</p> <input type="text" id="english" required="required" size="80" /> <br />
<input type="button" value="Translate!" onClick="translation()" />
<p>Pig Latin translation:</p> <textarea name="piglat" rows="10" cols="60"></textarea>
</form>
<script type="text/javascript">
<!--
fucntion translation() {
var delimiter = " ";
input = document.form.english.value;
tokens = input.split(delimiter);
output = [];
len = tokens.length;
i;
for (i = 1; i<len; i++){
output.push(input[i]);
}
output.push(tokens[0]);
output = output.join(delimiter);
}
//-->
</script>
如果能得到任何帮助,我将不胜感激!
【问题讨论】:
-
解决问题的第一步是学会提出正确的问题。 究竟是什么让您感到困惑?您可能会发现自己找到了回答自己问题的工具。
-
不回答您的问题,但请注意您正在为
input、tokens、output、len和 @ 创建 全局 变量987654328@ 在您的translation函数中(单词fucntion[原文如此] 也拼写错误,但至少您会在控制台中得到一个错误)。您已经使用var声明了delimiter,但其末尾的;结束了var语句,因此以下几个语句只是您成为牺牲品的赋值(i;除外) The Horror of Implicit Globals。只是 FWIW。 -
@32bitkid 我对如何在数组中移动字母感到困惑。我知道如何将第一个字母与单词分开,但不知道如何在最后移动它
-
请改变你所有的变量..我们不想要全球范围的囤积
-
@Gcap:没有必要在数组中移动字母。一旦你得到了单词的字符串数组,你从
split正确地得到了(除了我上面的注释中的东西),看看使用String#substring。
标签: javascript