2013-03-11 99 views
-2

可以使用javascript/jquery自動刪除最後一個逗號嗎?
該代碼是由上傳表單生成的,不是硬編碼的!刪除數組中的最後一個逗號

一些代碼:

<script> 
    var images = [ 
     'image1.jpg', 
     'image2.jpg', 
     'image3.jpg', // Remove this comma 
    ]; 
</script> 

感謝
Ogni

+0

讓我們儘量保持評論的話題。如果您對澄清問題有疑問,請將其作爲評論發佈。讓我們保持評論免於燃燒。 – 2013-03-11 11:54:49

回答

4

嗯......你被火燒到高天沒有明顯的理由,但答案似乎是「你不需要擔心這個逗號「。 images.length返回3,並且images.join(「,」)會生成一個不包含尾隨逗號的字符串。所以......儘管看起來我對「這是糟糕的語法」的初步回答是錯誤的,但事實上這個逗號似乎對你沒有任何壞處(除非我忽略了某些東西)。所以......問題在於,爲什麼你會關心它是否存在,如果interperter似乎完全不感興趣。

如果有一些較老的Javascript環境對此語法不滿意,那麼您應該避免使用它。

如果這個javascript是由一些其他進程動態生成的,那麼你應該改變你的問題來指定發生什麼語言/環境,我相信我們會幫你壓縮那個尾隨的逗號。

+1

我覺得OP的問題是根據規範它是有效的。舊IE不能正確運行此代碼。另外,在附註中,你不能真正引用JS _compiler_。這就是爲什麼人們要求OP對他的問題更加具體,因爲這聽起來像是有一個更大的下層問題。 (另外,我不是這個答案的落後者) – 2013-03-11 11:22:44

+0

@BenjaminGruenbaum,我使用編譯器作爲捕獲,無論它是在運行時解釋代碼。我承認這種區別,但是我使用的術語是無意義的,因爲Javascript可以在很多地方運行,所以「編譯器」似乎更加適合。你覺得虛擬機,Interpeter還是RunTime更準確? – 2013-03-11 11:25:31

+0

由於不需要編譯,所以可能是運行時,虛擬機或interperter工作。儘管如此,我會根據規範使用術語有效和無效的語法。 ECMAScript version 3規範不允許ECMAScript version 5規範允許的尾隨逗號。此外,建議OP不支持OldIE可能不實際。 – 2013-03-11 11:28:32

0

您可以優化if (image == NaN || image == null) {邏輯 並嘗試此代碼。

<script type="text/javascript" language="javascript"> 
     var images = [ 
     'image1.jpg', 
     'image2.jpg', 
     'image3.jpg', 
    ]; 
     alert(images.length); 
     var image = images[images.length - 1]; 
     if (image == NaN || image == null) { 

      images.pop(); 

     } 
     alert(images.length); 
    </script> 

刪除NaN使用if (image == null) {只有