从数组中删除未检查的值

zbq4xfa0  于 2021-09-23  发布在  Java
关注(0)|答案(3)|浏览(263)

当值(项-1)被选中时,它将显示在控制台中,然而,当它被取消选中时,值(项-1)将保留在数组中。我正在尝试从数组中取消选中项1时将其删除。

const item = document.querySelector('.item');
const value = 'Insert into array';
let specArr = [];

item.addEventListener('change', function (e) {

//   Push value into array
    if (item.checked) {
        specArr.push(`${value}`)
        console.log(specArr);

//    Remove value from array
    } else if (!item.checked) {
        let index = specArr.indexOf(specArr)
        if (index != -1) {
            specArr.splice(index, 1);
            console.log(specArr);
        }
    }
})
<input class="item" type="checkbox" > Item 1
brc7rcf0

brc7rcf01#

你必须寻找
indexOf value 在里面 specArr 不是
valueOf specArr 在里面 specArr ```
let index = specArr.indexOf(value)

const item = document.querySelector('.item');
const value = 'Insert into array';
let specArr = [];

item.addEventListener('change', function(e) {

// Push value into array
if (item.checked) {
specArr.push(${value})
console.log(specArr);

//    Remove value from array

} else if (!item.checked) {
let index = specArr.indexOf(value)
if (index != -1) {
specArr.splice(index, 1);
console.log(specArr);
}
}
})

Item 1

sbtkgmzw

sbtkgmzw2#

函数array.prototype.filter()非常适合解决此问题。使代码简单而智能。

const item = document.querySelector('.item');
const value = 'Insert into array';
let specArr = [];

item.addEventListener('change', function(e) {
  if (item.checked) {
    specArr.push(`${value}`)
  } else {
    specArr = specArr.filter(item => item !== value)
  }
  console.log(specArr);
})
<input class="item" type="checkbox"> Item 1
kqqjbcuj

kqqjbcuj3#

specArr.indexOf(specArr) 正在寻找 specArr 在里面 specArr ,这是不存在的。相反,寻找 value .
尝试:

const item = document.querySelector('.item');
const value = 'Insert into array';
let specArr = [];

item.addEventListener('change', function(e) {
  if (item.checked) {
    specArr.push(`${value}`)
    console.log(specArr);
  } else if (!item.checked) {
    let index = specArr.indexOf(value)
    if (index != -1) {
      specArr.splice(index, 1);
      console.log(specArr);
    }
  }
})
<input class="item" type="checkbox"> Item 1

相关问题