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

时间:2014-11-13 02:05:43

标签: javascript replace

我一直试图建立一个小型预订系统但是我被卡住了。基本上,我将所有想要预订的座位号码添加到一个字符串中,例如(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;
}

提前多多感谢!!

2 个答案:

答案 0 :(得分:2)

你执行split()然后join()但不要将结果分配回seatNumbersToBook,所以seatNumbersToBook仍然是旧值

答案 1 :(得分:0)

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/splithttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join String.prototype.split()和Array.prototype.join()不会更改字符串或数组本身但返回新的字符串或数组