【发布时间】:2021-05-04 23:20:56
【问题描述】:
我无法过滤出数组中的对象。在整个数组上单击一个按钮时我拥有的代码被过滤。我想在我点击的地方,从数组中删除该对象。我已经尝试了拼接和过滤方法,但我最终得到了相同的结果,因为整个数组被删除而不是那个项目。我怎样才能只定位那一项?
function removeItem(btns, id) {
btns.forEach(btn => {
btn.addEventListener('click', (e) => {
let newArr = shoppingList.filter((item, i) => {
return item.id !== item.id
})
shoppingList = newArr
cartMenuItems.innerHTML = newArr
cartItemCount.innerText = newArr.length
return newArr
})
})
}
【问题讨论】:
-
您将
item.id与自身进行比较,并且由于它们永远不会相等,因此它总是返回false。我假设您实际上想将 button.id(或其他相关属性)与 item.id 进行比较。 -
@pilchard 嗨,pilchard。如果我将它与其他东西进行比较,它仍然会做同样的事情。它删除整个数组或返回原始数组。
标签: javascript html arrays filter