一个json数组,通过splice删除指定对象,最后返回的数组长度还是原来的长度,只是原数据被[]替代。
代码如下:
table.on("tool(sampleList)",function(obj) {
var data = obj.data;
if (obj.event === 'del') {
layer.confirm('真的删除' + '<span style="color:red;">' + data.name + '</span>' + '吗', function (index) {
obj.del();
for(var i=0;i<infoList.length;i++){
if(infoList[i].name==data.name){
infoList.splice(i,1);
}
}
$('#instrumentPurchaseInfoList').val(JSON.stringify(infoList));
layer.close(index);
});
}
})
页面如下:
原数据如下:
[{"page":1,"limit":10,"displayStart":0,"flag":0,"userId":null,"userType":0,"id":14,"purchaseId":5,"name":"111","specification":"","unit":"","price":null,"num":null,"generatingUnit":"","LAY_TABLE_INDEX":0},{"page":1,"limit":10,"displayStart":0,"flag":0,"userId":null,"userType":0,"id":15,"purchaseId":5,"name":"sjh","specification":"","unit":"","price":null,"num":null,"generatingUnit":"","LAY_TABLE_INDEX":1},{"page":1,"limit":10,"displayStart":0,"flag":0,"userId":null,"userType":0,"id":16,"purchaseId":5,"name":"222","specification":"","unit":"","price":null,"num":null,"generatingUnit":"","LAY_TABLE_INDEX":2},{"page":1,"limit":10,"displayStart":0,"flag":0,"userId":null,"userType":0,"id":17,"purchaseId":5,"name":"333","specification":"","unit":"","price":null,"num":null,"generatingUnit":"","LAY_TABLE_INDEX":3}]
删除所有后界面如下:
数据如下:
{[],[],[],[]}
你代码有问题,for循环了,然后你又splice删除了,数组长度会变,但是i还是正常递增
如果要用for删除数组,应该从后往前删除