取消选中时从javascript数组中删除项

取消选中时从javascript数组中删除项,javascript,jquery,Javascript,Jquery,已通过选中复选框获取此函数以扩展数组(组): $("input[type=checkbox]").click(function() { if($(this).is(":checked")){ $(this).parent().data("groups").push("my"); console.log($(this).parent().data("groups")); } else{ // $(this).p

已通过选中复选框获取此函数以扩展数组(组):

$("input[type=checkbox]").click(function() {
     if($(this).is(":checked")){
         $(this).parent().data("groups").push("my");
          console.log($(this).parent().data("groups"));
      }
      else{
      //   $(this).parent().data("groups").pop();
      console.log($(this).parent().data("groups"));
       }

});

    <div class="item white" data-kpi="GDI" data-groups='["all", "numbers", "green", "square"]'>
<input type="checkbox" class="ps" name="add" value="my" />
</div>
$(“输入[type=checkbox]”)。单击(函数(){
如果($(this).is(“:checked”)){
$(this.parent().data(“groups”).push(“my”);
console.log($(this.parent().data(“groups”);
}
否则{
//$(this.parent().data(“groups”).pop();
console.log($(this.parent().data(“groups”);
}
});

我希望能够通过取消选中复选框(可能有多个“我的”组项目)再次删除该项目

可以使用splice从阵列中删除元素

array = ['my', 'name', 'my'];
index = array.indexOf('my');
array.splice(index, 1);

如果向数组中添加唯一标识复选框的内容,则可以执行此操作。或者,如果您不关心删除了哪个项目,只需使用代码中已有的
$(this).parent().data(“groups”).pop()
。或者这有什么问题?如果你做了
.data(this.id)
或者其他任何独特的事情,你实际上可以删除它,因为如何从
我的
数组中删除某个
我的
?以及实际删除它的部分?我不理解这个问题。这实际上删除了元素