我是学校的JavaScript新手,这个项目并没有按照我的意愿去做。 (首先是这些帖子的原因,对吗?)
目标是让用户在名为startMeUp()的函数中一次输入一个单词,然后在用户输入空字符串时停止提示。 (那部分有效)
然后应该引用一个函数“processString”,它将输入的字符串转换为数组,检查数组中每个单词的长度,如果<则将其变为大写。如果> = 4,则为4个字母或小写。
最后,它应该“将转换后的字符串返回到调用函数startMeUp中的变量,并使用document.write显示该值”
我以为我正确地做了,但没有写到页面,所以我不确定我哪里出错了。我已经包含了以下代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Exercise 2</title>
<script language="JavaScript" type="text/JavaScript">
//************************
// Main start-up function
// Invoked from the onload event
var someInput;
var someArray;
var someFinalString;
function startMeUp() {
do{
someInput = prompt("Enter a word");
}
while(someInput.length > 0);
processString(someInput);
document.write(someFinalString);
}
function processString(someInput){
//split the input string into a JavaScript array
someArray = someInput.split(" ");
//use a for loop to examine every word
for(i = 0; someArray[x]; i++)
{
if(someArray[i].length < 4)
{
someArray[i].toUpperCase();
}
if(someArray[i].length >= 4)
{
someArray[i].toLowerCase();
}
someFinalString = someArray.join(" ");
}
}
</script>
</head>
<body onload="startMeUp();">
</body>
</html>
答案 0 :(得分:0)
以下是欲望行为的一个实例。
function start() {
var input = "";
var str = "";
do {
input = prompt("Enter a word");
str += input + " ";
} while (input);
document.write(proccessStr(str));
}
function proccessStr (str) {
var arr = str.split(" ");
for (var i = 0; i < arr.length; i++) {
if (arr[i].length < 4)
arr[i] = arr[i].toUpperCase();
else
arr[i] = arr[i].toLowerCase();
}
return arr.join(" ");
}
start();
Codepen:https://codepen.io/anon/pen/qXByby(jsfiddle支持docuent.write
)。
您的代码几乎没有问题。
string
方法时,它确实改变了变量中的值,它只是创建了新的值,你需要将它赋值给保存值的变量才能改变它。return
将转换后的字符串的值返回给第一个函数,不需要全局。document.write
,但这不是一个好习惯,请考虑写一个元素innerHTML/Text