Javascript Jquery-如何删除数组中特定记录后的逗号
我正在使用datatablesJavascript 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
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);