Javascript Jquery-如何删除数组中特定记录后的逗号

Javascript Jquery-如何删除数组中特定记录后的逗号,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在使用datatablesmRender函数在一列中生成一个以逗号分隔的项目列表。我想从列表中删除一条特定的记录,该记录位于数组中记录列表的末尾。大概是这样的: LESS,SAAS,REST,API var items = 'LESS,SAAS,REST,API'.split( ',' ); items = items.filter(function( item ) { /* return false for anything you want to remove */ }); conso

我正在使用datatables
mRender
函数在一列中生成一个以逗号分隔的项目列表。我想从列表中删除一条特定的记录,该记录位于数组中记录列表的末尾。大概是这样的:

LESS,SAAS,REST,API
var items = 'LESS,SAAS,REST,API'.split( ',' );
items = items.filter(function( item ) { /* return false for anything you want to remove */ });
console.log( items.join( ',' ) );
我想删除最后一条记录(API,我确实删除了),但是,当我删除它时,逗号仍然会在最后粘在它上面,导致如下结果:

LESS,SAAS,REST,
LESS,SAAS,
假设逗号后的所有时间记录都是
all
。我如何删除记录以及记录后面的逗号?? 编辑:这就是我获取代码的方式,我通过传递空字符串来删除
API
。请建议我们可以做得更好

mRender: function (obj) {
    _.each(obj, function(item, index){
        var prodVal = "";

        else if (item === 'API'){
            prodVal = '';
        }

        returnVal.push("<span class='product'>" + prodVal + "</span>");
    });

    return returnVal.join(', ');
}
mRender:功能(obj){
_.每个(对象、功能(项目、索引){
var prodVal=“”;
否则,如果(项=='API'){
prodVal='';
}
returnVal.push(“+prodVal+”);
});
返回returnVal.join(',');
}
有什么想法吗


谢谢

有很多方法可以做到这一点,但我认为将字符串拆分成一个数组,过滤掉数组,然后重新合并成一个字符串将是最健壮和灵活的方法

大概是这样的:

LESS,SAAS,REST,API
var items = 'LESS,SAAS,REST,API'.split( ',' );
items = items.filter(function( item ) { /* return false for anything you want to remove */ });
console.log( items.join( ',' ) );
一些相关链接:

    • 使用此

       var str = "LESS,SAAS,REST,API";
       var res = str.split(",");
       res.pop();
       console.log(res.join(","));
      

      这是一个非常简单的函数,完全满足您的需要。试试看,让我知道你的想法:

         $(document).ready(function() {
      
              var string = "LESS,SAAS,REST,API";
              var array = string.split(",");
      
              function delete_last(elem) {
                  var index = array.indexOf(elem);
                  array.splice(index, 1);
                  return array.join(",");
              }
      
              var results = delete_last("API");
      
              console.log(results);
      
          });
      
    • 分解为数组,即
      var arr='LESS,SAAS,REST,API'。拆分(',')
    • 移除元件,即
      av.拼接(av.length-1,1)//删除最后一个元素
      根据您使用的是数组、对象还是字符串,有几种不同的处理方法。在您的示例中,看起来您将值设置为空,而不是删除条目,这就是为什么在使用
      returnVal.join(',')
      后会得到一个额外的逗号

      从数组中删除最后一个元素 从字符串中删除最后一个元素 删除对象的最后一个成员 虽然我不确定您正在处理的对象的结构,但您应该使用
      delete mRecord[member]
      的一些变体

      当前,
      prodVal='
      将该项保留在数组中,导致
      returnVal.join(',')
      在最后一个值和空值之间包含一个额外的'

      您的代码包括
      else if
      声明,但不包括初始
      if
      声明。我怀疑,如果您移动推送并在主条件内返回,它可能会按照您的意愿工作

      mRender: function (obj) {
          _.each(obj, function(item, index){
              var prodVal = "";
      
              if (item === 'API'){
                  prodVal = '';
                  // edit: your best bet is to generate a new array or object to act on
                  //       rather than trying to unset the item here.
              } else {
                  returnVal.push("<span class='product'>" + prodVal + "</span>");
              }
              
          });
          return returnVal.join(', ');
      }
      
      mRender:功能(obj){
      _.每个(对象、功能(项目、索引){
      var prodVal=“”;
      如果(项目=='API'){
      prodVal='';
      //编辑:您最好的选择是生成一个新的数组或对象来执行操作
      //而不是试图在这里取消设置项目。
      }否则{
      returnVal.push(“+prodVal+”);
      }
      });
      返回returnVal.join(',');
      }
      
      这将从示例阵列中删除7,该示例阵列显示了
      拼接的工作方式

      var anArray = [ "1", "2", "3", "4", "5", "6", "7" ];        
      anArray.splice(-1);
      
      将给出123456(不含7,为数组中的最后一个元素)


      下面是一个正在运行的演示

      您现在如何删除它
      LESS、SAAS、REST、API
      是一个字符串,对吗?感谢大家的及时响应。我现在就试试!!!没问题。您应该将字符串转换为数组,然后使用.pop、lastic use.join删除最后一个值以查看结果。感谢您的建议,我们将尝试!没有理由投反对票。请解释为什么你投了反对票。谢谢,我也有点好奇。它确实回答了这个问题,但我猜是因为它不能应用于提出的问题。也许应该重新编写这个问题。。。
      var anArray = [ "1", "2", "3", "4", "5", "6", "7" ];        
      anArray.splice(-1);