Jquery-如何删除数组中特定记录后的逗号
Jquery- How to remove comma after a specific record in an array
我正在使用datatables mRender
函数生成一个用逗号分隔的列中的项目列表。我想从列表中删除一个特定的记录,而该记录位于数组中记录列表的末尾。类似这样的东西:
LESS,SAAS,REST,API
我想删除最后一条记录(API,我这样做了),然而,当我删除它时,逗号仍然粘在它的最后,导致类似于:
LESS,SAAS,REST,
LESS,SAAS,
假设逗号之后的记录一直是CCD_ 2。如何删除记录以及后面的逗号??EDIT:这就是我的代码,我通过传递空字符串来删除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(', ');
}
有什么想法吗???
谢谢!
删除最后一个元素
根据您使用的是数组、对象还是字符串,有几种不同的处理方法。在您的示例中,它看起来像是将值设置为空,而不是删除条目,这就是为什么在使用returnVal.join(', ')
后会得到一个额外的逗号。
从数组中删除最后一个元素
var mRecord = ["LESS","SAAS","REST","API"];
mRecord.pop();
console.log(mRecord); // Array( [0] => "LESS", [1] => "SAAS", [2] => "REST" )
console.log(mRecord.join()); // String "LESS,SAAS,REST"
从字符串中删除最后一个元素
// with simple built-in functions - will perform better in your example
mRecord = mRecord.substring(0, str.lastIndexOf(",") - 1);
// with regex - may perform better with larger strings
mRecord = mRecord.replace(/,[^,]+$/, "");
删除对象的最后一个成员
虽然我不确定您正在处理的对象的结构,但您可能正在使用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(', ');
}
使用此
var str = "LESS,SAAS,REST,API";
var res = str.split(",");
res.pop();
console.log(res.join(","));
- 分解成阵列,即
var arr = 'LESS,SAAS,REST,API'.split(',')
- 删除元素,即
av.splice(av.length-1,1); //<- removes last element
- 再次加入生成字符串
av.join(',')
var list = 'LESS,SAAS,REST,';
list = list.substring(0, list.length);
有很多方法可以做到这一点,但我认为将字符串拆分成一个数组,过滤掉数组,然后重新连接成一个字符串将是最稳健的&灵活的
类似这样的东西:
var items = 'LESS,SAAS,REST,API'.split( ',' );
items = items.filter(function( item ) { /* return false for anything you want to remove */ });
console.log( items.join( ',' ) );
几个相关链接:
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
这将从这个示例数组中删除7,显示splice
如何工作
var anArray = [ "1", "2", "3", "4", "5", "6", "7" ];
anArray.splice(-1);
将给出123456(没有数组中最后一个元素的7)
这里有一个jsfiddle显示它在中的作用
这是一个非常简单的函数,正适合您的需要。试试看,让我知道你的想法:
$(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);
});
- 在记录数组搜索后追加变量和数组项
- 在对象数组中添加具有相同名称的产品记录的价格
- 从Javascript记录数组中选择随机项,并将其转换为数组
- 解析多维数组JS的数组并记录索引
- Javascript如何找到数组中的最大数字,并记录位置
- 如何在js中从数组中删除记录
- Ember - 绑定到数组控制器中的过滤列表,然后添加新记录
- jQuery:记录数组中的元素变化,并通过索引检查它是如何变化的
- 异步瀑布返回节点 js 和 mongodb 中数组的单个记录
- 将对象数组记录为 JSDoc 中回调函数的参数
- Javascript 从 JSON 数组中提取特定记录
- 使用单个查询将多个记录插入到 webSQL 表中,来自对象数组的数据
- 根据内部数组值跳过 JSON 数据记录 - D3
- 将输入记录到数组中,仅打印新输入
- 在Ember.js Ember数据记录数组上迭代
- rails传递记录数组(JSON)
- 将两个数组连接到一个记录数组中
- 按升序对记录数组进行排序
- 记录数组索引,而不是值(JavaScript) -为什么?
- 当使用时,不填充记录,否则填充记录数组