array.splice不是一个函数

Jua*_*gel 3 javascript arrays jquery

我试图从未经检查的数组中删除此项代码.

function filterSearch() {
var cats = [];

$('.filter-by-type input[type="checkbox"]').change(function() {
  var cat = $(this).attr('name') + ', ';
   if(this.checked) {
      cats += cat;
   } else {
      cats.splice(cats.indexOf(cat), 1);
   }

  console.log(cats);
 });

}

filterSearch();
Run Code Online (Sandbox Code Playgroud)

我收到了错误 Uncaught TypeError: cats.splice is not a function

基本上我想在cats[]检查项目时将值添加到数组中,如果未选中则删除.任何帮助,将不胜感激.

Wal*_*anG 9

cats是一个数组.这里:

if(this.checked) {
   cats += cat;
        ^^
} else {
   cats.splice(cats.indexOf(cat), 1);
}
Run Code Online (Sandbox Code Playgroud)

您正在尝试将数组与+=运算符连接,cats现在是一个字符串,您应该使用push方法.

if(this.checked) {
   cats.push(cat);
} else {
   cats.splice(cats.indexOf(cat), 1);
}
Run Code Online (Sandbox Code Playgroud)