Javascript替换在控制台中工作,而不是在代码中

Javascript替换在控制台中工作,而不是在代码中,javascript,replace,Javascript,Replace,我一直在尝试建立一个小的预订系统,但我被卡住了。基本上,我将所有想要预订的座位号添加到一个字符串中,例如(a22~b20~f10)。但是,当取消选择座椅时,需要将其从字符串中移除。我尝试过使用.replace,但无效,即使在控制台中也是如此 然后我尝试了下面的代码。它在控制台中工作得非常出色,但在我的代码中却一点也没有 seatNumbersToBook.split(seatNumber+"~").join(""); 完整的功能在这里 var seatNumbersToBook = "";

我一直在尝试建立一个小的预订系统,但我被卡住了。基本上,我将所有想要预订的座位号添加到一个字符串中,例如(a22~b20~f10)。但是,当取消选择座椅时,需要将其从字符串中移除。我尝试过使用.replace,但无效,即使在控制台中也是如此

然后我尝试了下面的代码。它在控制台中工作得非常出色,但在我的代码中却一点也没有

seatNumbersToBook.split(seatNumber+"~").join("");
完整的功能在这里

var seatNumbersToBook = "";

function calcSeats(calc, seatNumber){

    if(amountSeatsToBeBooked != 0 && seatNumber != "NaN" && calc == "-1"){
        seatNumbersToBook = seatNumber + "~" + seatNumbersToBook;
    }        

    if(calc == "+1"){
        //remove from seatNumbersToBook array
        seatNumbersToBook.split(seatNumber+"~").join("");

        console.log(seatNumber);
    }

    // despite removing seat number from array, still MUST check in array to see if the seatnumber has already been recorded

    amountSeatsToBeBooked = eval(amountSeatsToBeBooked + calc);

    $("#remainingSeatsToBeBooked").html(amountSeatsToBeBooked);

    console.log(seatNumbersToBook);

    return amountSeatsToBeBooked;
}
提前多谢

先执行split(),然后执行join(),但不将结果赋回seatNumbersToBook,因此seatNumbersToBook仍然是旧值

请参见和
String.prototype.split()和Array.prototype.join()不会更改字符串或数组本身,而是返回一个新的字符串或数组

您的代码中甚至没有
.replace()
。为什么不使用实际的array@zerkms不我把它拿出来是因为它不工作,所以保留它没有意义。@OJay因为其他东西的工作方式,数组开始变得烦人。这应该是simple@Jacbey不能评论其他东西如何工作,但重新设计某种伪字符串标记,并计算通过
eval
计算一个字符串剩下的座位数,对我来说一点也不简单。两个相互排斥的“AvailableSets”和“bookedSeats”数组更易于理解和使用标准数据结构。或者可能是一个属性为true或false的
seat
对象数组,为什么它能像在控制台中一样完全正常工作?这根本没有道理。还有,这就是你的意思吗?seatNumbersToBook=seatNumbersToBook.split(seatNumber+“~”).join(“”);在控制台中,当您输入该表达式时,它将计算并输出结果,因此对我来说是有意义的。表达式没有问题,结果是正确的,但您不只是存储结果。“没有用”-这是什么意思?@PhuongNguyen我得到了它的工作,非常感谢您的帮助,请原谅我在这个时候头脑简单。