【发布时间】:2021-10-22 11:52:50
【问题描述】:
我创建了以下函数来从数组中删除自定义元素:
Array.prototype.removeElement=function(x){
var index = this.indexOf(x);
if (index !== -1) {
this.splice(index, 1);
}
};
它适用于以下数组:
var data = [1,2,3,4];
data.removeElement(2); //returns [1,3,4]
但是当我从某个元素中拥有多个项目时,它只会删除第一次出现。
var data = [1,2,3,4,2];
data.removeElement(2);
// returns [1,3,4,2] while I expect to get [1,3,4]
我知道我可以通过使用循环来做到这一点,但我很想知道是否有更简洁的代码?
【问题讨论】:
-
没有真正的方法可以在没有循环的情况下删除多个元素,除非您执行this 之类的操作,但这有点 hacky(并且在技术上仍然使用 loop) 并没有比使用标准循环更好,所以你最好使用类似a for/while loop
标签: javascript arrays function