-3

我制作了一个函数,用于从我也制作的变量中删除某个单词。

var eliminateWord = function (usedwords){word2.replace (/go/g," ");

但我似乎无法在这段代码中使用该函数:

var word1 = "go",

word2 = "go to the shops everyday and buy chocolate.";

var eliminateWord = function (usedwords){
word2.replace (/go/g," ");
};

if (word2.match("go")) {
    console.log("user entered go");
    eliminateWord ();
}
if (word2.match("to")) {
    console.log("user entered to");
}

if (word2.match("the")) {
    console.log("user entered the");
}
if (word2.match("and")) {

    console.log("user entered and");
}
console.log(word2);
4

2 回答 2

1

replace方法返回修改后的字符串。它不会就地修改字符串(无论如何也不能,因为字符串是不可变的)。由于您没有对函数中的返回值做任何事情,因此更改的字符串将被丢弃。

你也在搞乱全局变量,这是编写令人困惑的代码的好方法。而是传递参数。

此外,似乎没有任何理由在这里使用函数表达式而不是函数声明。

function eliminateWord(word){
    return word.replace(/go/g," ");
}

word2 = eliminateWord(word2);
于 2013-06-14T13:00:07.083 回答
1

只需返回用替换获得的值:

var eliminateWord = function (usedwords){return word2.replace (/go/g," ");
于 2013-06-14T13:03:19.380 回答