2013-03-11 54 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) {只有