我一直试图建立一个小型预订系统但是我被卡住了。基本上,我将所有想要预订的座位号码添加到一个字符串中,例如(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;
}
提前多多感谢!!
答案 0 :(得分:2)
你执行split()然后join()但不要将结果分配回seatNumbersToBook,所以seatNumbersToBook仍然是旧值
答案 1 :(得分:0)
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join String.prototype.split()和Array.prototype.join()不会更改字符串或数组本身但返回新的字符串或数组