JavaScript项目没有写入文档

时间:2017-07-24 12:19:07

标签: javascript

我是学校的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>

1 个答案:

答案 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)。

您的代码几乎没有问题。

  1. 您正在使用全局变量而不需要,不是良好实践
  2. 您没有保存用户的所有输入,因此始终保存最后一个字符串,并保留空字符串,因此实际上您将空字符串发送到您的其他功能。
  3. 当你在字符串上使用string方法时,它确实改变了变量中的值,它只是创建了新的值,你需要将它赋值给保存值的变量才能改变它。
  4. 如果查看我的示例,我使用return将转换后的字符串的值返回给第一个函数,不需要全局。
  5. 虽然我使用document.write,但这不是一个好习惯,请考虑写一个元素innerHTML/Text