我正在插入并删除数组中的值。如果值不存在,则插入如果EXISTED将其删除。但是我有一个简单的条件来检查所选值是否大于3.如果大于3,则不要在数组中添加并进行简单通知。
我的问题是如果价值已经存在,我就无法删除它。 这是我的简单代码:
var limit = 3;
var findValue;
var ids = [];
function findIfExist(selected) {
var findValue = jQuery.inArray(selected, ids);
console.log(findValue);
if(findValue >= 0) {
ids.splice(selected, 1);
} else {
ids.push(selected);
}
}
$('input[name="services[]"]').on('change', function(evt) {
var count = $('input[name="services[]"]:checked').length;
var selected = $(this).val();
if(count > 3) {
bootbox.alert({
title: 'Oops',
message: 'Only 3 services are allowed from the registration',
size: 'small'
});
$(this).prop('checked', false);
findIfExist(selected);
} else {
findIfExist(selected);
}
console.log(ids);
});
示例输出是一个ID为
的简单数组你能发现我哪里出错吗?
答案 0 :(得分:3)
Array#splice
使用要删除的元素的索引,而不是元素本身。
ids.splice(selected, 1);
在这里,您将元素传递给splice()
。使用索引findValue
。
ids.splice(findValue, 1);