[英]how to remove a specific item from a list js?
我创建了一个算法来显示某个块中元素的标题,但我无法删除我 output 的内容。 js:
var products = document.querySelectorAll('.product-block'); //objects
var product_names = document.querySelectorAll('.product-block h5'); //headings which we should output
var array_product_names = Array.prototype.slice.call(product_names); //from NodeList to array
var favourite_elements = document.querySelector('.favourite_elements'); //block where we should output
//method of determining which button is pressed
products.forEach((product, i) => {
product.onclick = function () {
if (product.style.background != "orange") {
product.style.background = "orange";
var favourite_element = array_product_names[i].outerHTML;
favourite_elements.insertAdjacentHTML('afterbegin', favourite_element); //adding elements
}
else if (product.style.background == "orange") {
//here we should delete heading of determined object from list in block, but i don't know how
}
}
});
这过于简单,但它显示了如何从列表中删除项目:
let a=[1,2,3,4,5];
let toDelete=[2,3];
a=a.filter(e=>!toDelete.includes(e))
现在, a的值将是:
[1,4,5]
基于这个想法,你可以做更多抽象的事情,例如:
Array.prototype.filterA = function(f){
return this.filter(e=>f(e));
}
从那时起,您将只过滤这样的元素:
[{color:"orange"},{a:1},{b:{c:2}}].filterA(e=>e.color!="orange")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.