我有for循環,它通過帶參數的數組。當下一個參數是「?」,「&」或「||」時,它不應該添加逗號,但它總是會增加。我不明白爲什麼,這裏是代碼:爲什麼這個JavaScript代碼不起作用?
var args = ["arg1","arg2","?","arg3"];
var query = "";
for (var i = 0; i < args.length; i++) {
\t \t switch (args[i]) {
\t \t \t case "?":
\t \t \t \t query += " where ";
\t \t \t \t break;
\t \t \t case "&":
\t \t \t \t query += " and ";
\t \t \t \t break;
\t \t \t case "||":
\t \t \t \t query += " or ";
\t \t \t \t break;
\t \t \t default:
\t \t \t \t if (args[i+1] != "?");
\t \t \t \t {
\t \t \t \t \t query += args[i] + ", ";
\t \t \t \t \t break;
\t \t \t \t }
\t \t \t \t query += args[i] + " ";
\t \t \t \t break;
\t \t }
\t }
document.write(query);
當我鍵入此(這是由 「」 分裂併發送至陣列參數):
arg1 arg2 ? arg3
它打印如下:
arg1, arg2, where arg3, // while it should be arg1, arg2 where arg3,
感謝您的幫助,問題是由extern腳本造成的。是的,我去掉分號;)
它在哪裏不同'arg1,arg2,其中arg3,//它應該是arg1,arg2其中arg3,'? –
@NinaScholz在'arg2'之後的逗號後面明顯不需要'where'。 – Pointy
打印哪裏?您可能正在「打印」一個數組,而其'toString'方法會添加逗號。 – Teemu