【问题标题】:How to remove last comma of a javascript array如何删除javascript数组的最后一个逗号
【发布时间】:2016-09-26 16:47:51
【问题描述】:

我已经找到了很多关于如何删除 javascript 字符串的最后一个逗号等的答案,但我无处可找到解决以下问题的方法:

var columns = new Array("datum","viz1","viz2","gaz","aram_nappali",);

这是我的数组,我想删除最后一个逗号,因为它们是通过 PHP if 语句生成的。

我尝试了以下但没有成功:

columns = columns.substring(1, s.length - 1);

谁有一个简单的解决方案?

提前致谢

【问题讨论】:

  • 你为什么不修复你的 PHP if 语句不添加额外的逗号?
  • 如果元素是 if/whatever 中的最后一个元素,则在不带逗号的情况下添加它
  • 或者不要猜测是否添加逗号,并在尝试创建逗号分隔列表时正确使用PHP,使用implode

标签: javascript arrays comma


【解决方案1】:
var columns = ["datum","viz1","viz2","gaz","aram_nappali",];
var a = columns.toString();
//a will be "datum,viz1,viz2,gaz,aram_nappali"

【讨论】:

    【解决方案2】:

    你真的应该修复 PHP 输出,你也可以这样做,因为简单数组在末尾忽略逗号

    var columns = ["datum","viz1","viz2","gaz","aram_nappali",,,];
    var test = new Array(columns.join());
    console.log(test);
    

    【讨论】:

    • 依赖new Array() 通常是个坏主意,因为它does not behave predictably。更好的解决方案是解决生成 JS 代码的 PHP 脚本中的问题,以便它简单地生成正确的 JS。
    • 谢谢,这是解决我问题的唯一方法。
    • @Tibor 真的不是——修复你的 PHP,而不是你的 JavaScript。
    【解决方案3】:

    不要使用new Array(),它不会做你认为的事情(感谢behaving differently depending on how many arguments you supply)。 JavaScript 有一个数组literal,你应该使用它来代替(不管你是手工编写 JS 还是在转换步骤中生成它):

    // in JavaScript:
    var columns = ["datum","viz1","viz2","gaz","aram_nappali"];
    

    而且,如果您的 JS 是通过 PHP 生成的,那么这里的解决方案是通过使其生成正确的 JS 源代码来确保您正确使用 PHP:

    // in PHP:
    $varlist = array("datum","viz1","viz2","gaz","aram_nappali");
    
    ...
    
    // use [implode] to convert your array to joined string:
    $jscode = 'var columns = "' . implode('","', $varlist) . '"];';
    

    如果您想要逗号分隔列表(或“任何内容分隔”列表)的字符串版本,请使用 implode 来实现。

    【讨论】:

      【解决方案4】:

      在创建后立即删除数组中的最后一项:

      columns.splice((columns.length -1), 1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多