【发布时间】:2018-03-13 13:20:04
【问题描述】:
我需要一些帮助才能从数组中删除项目。我有许多复选框,每个复选框都有一个动态创建的数据属性。在取消选中复选框时,我想从数组中删除与每个数组项的 item.sector 值匹配的项。我不能让它工作。任何帮助将不胜感激。
let mapMarkers = [];
function addFilter(self) {
const markerObject = filterObject[self.id];
const markerID = markerObject[0]["id"];
const dataSetSector = self.dataset.sector;
const dataSetYear = self.dataset.year;
if (self.checked) {
mapMarkers.push(markerObject);
} else {
// data attribute SECTOR exists
if (self.hasAttribute("data-sector")) {
mapMarkers = mapMarkers.reduce((acc, curr) => {
if (curr.sector !== dataSetSector) acc.push(curr);
return acc;
});
}
// data attribute YEAR exists
else if (self.hasAttribute("data-year")) {
mapMarkers = mapMarkers.reduce((acc, curr) => {
if (curr.sector !== dataSetYear) acc.push(curr);
return acc;
});
}
}
}
【问题讨论】:
-
你可以使用
filterinsetad ofreduce
标签: javascript arrays higher-order-functions