当值(项-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
3条答案
按热度按时间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);
} else if (!item.checked) {
let index = specArr.indexOf(value)
if (index != -1) {
specArr.splice(index, 1);
console.log(specArr);
}
}
})
Item 1
sbtkgmzw2#
函数array.prototype.filter()非常适合解决此问题。使代码简单而智能。
kqqjbcuj3#
specArr.indexOf(specArr)
正在寻找specArr
在里面specArr
,这是不存在的。相反,寻找value
.尝试: