繁体   English   中英

如何从列表js中删除特定项目?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM