Javascript 处理函数后删除字符串返回

Javascript 处理函数后删除字符串返回,javascript,join,return,Javascript,Join,Return,我是一个初学者和学生,我希望有人能帮助我。我有一个任务,我需要将程序分为3个功能。第一个从用户那里获取一个句子,第二个根据每个单词的长度将句子转换成新的“猪语言”,第三个在控制台中显示结果。我已经完成了这个程序的核心,但是我在清除返回字符串时遇到了一个问题。具体来说,一旦用户完成了所有3个步骤,我不希望他们能够进入程序的第3部分并再次看到结果。我希望他们必须回到开始。很抱歉,我说了这么多,但我不知道该怎么解释。 这是我的密码: function prog1(){ var userLang = p

我是一个初学者和学生,我希望有人能帮助我。我有一个任务,我需要将程序分为3个功能。第一个从用户那里获取一个句子,第二个根据每个单词的长度将句子转换成新的“猪语言”,第三个在控制台中显示结果。我已经完成了这个程序的核心,但是我在清除返回字符串时遇到了一个问题。具体来说,一旦用户完成了所有3个步骤,我不希望他们能够进入程序的第3部分并再次看到结果。我希望他们必须回到开始。很抱歉,我说了这么多,但我不知道该怎么解释。
这是我的密码:

function prog1(){
var userLang = prompt("Type in your sentence");
//If the user enters an empty string
    if(userLang == ""){
        console.log("You must enter a sentence");
    }
//If the user presses cancel
    else if(userLang == null){
        wantToQuit = true;
    }
//If the user enters in a good string
    else {
        console.log("Thank you, now go to program 2");
        been2prog1 = true;
        return userLang;
    }
} 

function prog2(){
//sets newLang = userLang and splits the string
var newLang = prog1Lang.split(" ");

//enters loop to find length of each split word
var x = 0;
for( x = 0; x < newLang.length; x++ ){

//if it's 5 or less words, add -oink    
    if ((newLang[x].length) <= 5){
        newLang[x] += "-oink";
    }
//if it's more than 5 words, add -a
    else {
        newLang[x] += "-a";

    }       

}
**newLang.join(" ");**  

//put the string back together  

console.log("String converted");
been2prog2 = true;
return newLang;
}

 function prog3(){
var endLang = prog2Lang;
console.log(endLang);
**delete prog2Lang;**

}
函数prog1(){
var userLang=prompt(“输入您的句子”);
//如果用户输入一个空字符串
如果(userLang==“”){
log(“您必须输入一个句子”);
}
//如果用户按“取消”
else if(userLang==null){
wantToQuit=true;
}
//如果用户输入的字符串正确
否则{
log(“谢谢,现在转到程序2”);
been2prog1=真;
返回userLang;
}
} 
函数prog2(){
//设置newLang=userLang并拆分字符串
var newLang=prog1Lang.split(“”);
//进入循环以查找每个拆分单词的长度
var x=0;
对于(x=0;x如果((newLang[x].length)尝试将newLang.join分配给它自己

newLang = newLang.join(" ");

我不确定你遇到的另一个问题是什么,我有点困惑

如果您只想清除一个字符串变量,那么

prog2Lang = null;

or 

prog2Lang = ""; 
null是空对象,“”是空字符串


这就是你想要的吗?

谢谢!工作得很好。我想把这归因于我对语法的经验不足。再次感谢!很乐意提供帮助。javascript中的Join方法不会对数组执行操作,将其转换为串联字符串,而是返回它从数组创建的全新对象。因此,您可以将其分配给任何变量。由于您不再需要数组,因此将其分配给其自身非常方便,新的sting对象将替换该数组。是的,现在您已经向我展示了这一点,这非常有意义。我发现自己在盯着它看了大约10个小时后迷失了方向。:)是的,我正在尝试在第三个函数完成后清除字符串。我将上面的两个示例都放在第三个程序中,但都不起作用。在第三个函数完成后,我不希望用户能够再次将3放在主菜单中,并得到相同的结果,它应该说您仍然需要输入字符串。好的l上面的代码应该可以工作。也许你的代码还有另一个问题。在上面的代码中,我实际上没有看到任何分配给prog2Lang的东西,这个变量似乎只在prog3中使用。你确定你要清除的变量叫做prog2Lang吗?接下来要检查的是,你要清除的变量在全局sc中操作。如果它在不同的作用域中,而您正试图清除它,那么您可能正在清除具有相同名称的不同变量。检查这两个变量,看看是否可以修复它。是的,您是对的。我只是没有将它放入程序的正确部分(作用域内容).我还需要它来清除程序2的字符串,这变得非常复杂,因为我需要该字符串进入程序3。啊!但是,是的,它应该可以。教授只想在第三个程序后清除它。所以,是的,希望它可以。再次感谢您的帮助!!!