小编Sha*_*per的帖子

使用reduce从数组中删除项目

我需要一些帮助才能从数组中删除项目。我有许多复选框,每个复选框都有一个动态创建的数据属性。在取消选中复选框时,我想从数组中删除与每个数组项的 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;
                });
            } …
Run Code Online (Sandbox Code Playgroud)

javascript arrays higher-order-functions

1
推荐指数
1
解决办法
4357
查看次数