gpt4 book ai didi

Javascript 函数数组删除项目

转载 作者:行者123 更新时间:2023-11-30 08:00:02 26 4
gpt4 key购买 nike

我有 Javascript 过滤器项目类和数组,如下所示

function FilterItem(filterId, filterType) {
this.filterId = filterId;
this.filterType = filterType;
}

var filterItemArray = [];

我正在向这个数组添加过滤器项,如下所示

function AddFilterItem(filterId, filterType) {
filterItemArray.push(new FilterItem(filterId, filterType));
}

我还需要通过特定的 filterId 从这个数组中删除项目

function RemoveFilterItem(filterId, filterType) {
var item = new filterItem(filterId, filterType);
var itemIndex = jQuery.inArray(item, filterItemArray);
}

但这行不通,我认为这不是有效的方法?我的问题是在 RemoveFilterItem 方法中删除此项的最佳方法是什么

最佳答案

为什么不用原生的filter函数:

function RemoveFilterItem(filterId, filterType) {    
filterItemArray = filterItemArray.filter(function (el) {
return el.filterId !== filterId && el.filterType !== filterType;
});
}

这将为您提供没有具有该 ID 和类型的元素的数组。

DEMO

这里是 Manwal 答案的修改版本,但又没有使用 jQuery:

function RemoveFilterItem(filterId, filterType) {
for (var i = 0, l = filterItemArray.length; i < l; i++) {
var el = filterItemArray[i];
if (el.filterId === filterId && el.filterType === filterType) {
filterItemArray.splice(i, 1);

// because we're caching the length of the array
// we need to adjust the length of l once the splice has taken place
l--;
}
}
}

DEMO

关于Javascript 函数数组删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30396505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com