【问题标题】:javascript remove duplicates from array of objectsjavascript从对象数组中删除重复项
【发布时间】:2020-10-25 05:10:31
【问题描述】:

我有以下对象数组,

var parsedData =  [
        {
            "ID": "16",
            "DESCRIPTION": "SMAATO"
        },
        {
            "ID": "26",
            "DESCRIPTION": "BIDSWITCH"
        },
        {
            "ID": "1572",
            "DESCRIPTION": "BIDSWITCH"
        }
    ]

我已使用以下代码从中删除重复项,

var flags = [], l = parsedData.length, i;
            for( i=0; i<l; i++) {
                if( flags[parsedData[i].DESCRIPTION]){ 
                    if(attribute.toLowerCase() == "supply"){
                        console.log("coming!!"+parsedData[i].ID+"---"+parsedData[i].DESCRIPTION);                       
                    }
                    continue;                   
                }
                flags[parsedData[i].DESCRIPTION] = true;
                groups_array.push({     
                    id: parsedData[i].ID, 
                    text: parsedData[i].DESCRIPTION
                });                 
            }

但我需要实现的是,如果 id 不同且描述相同意味着需要将 id 附加到第一个并删除重复的这样的,

[
    {
        "ID": "16",
        "DESCRIPTION": "SMAATO"
    },
    {
        "ID": "26,1572",
        "DESCRIPTION": "BIDSWITCH"
    }
]

如何得到这个请帮助我...

【问题讨论】:

    标签: javascript duplicates


    【解决方案1】:

    试试:

    if (flags[parsedData[i].DESCRIPTION]) {
        let id = groups_array.map(item => item.text).indexOf(parsedData[i].DESCRIPTION);
        groups_array[id].id = groups_array[id].id + "," + parsedData[i].ID
        continue;                   
    }
    

    【讨论】:

    • 感谢它的工作。但是箭头功能将在所有浏览器中都支持?.在 IE 中它不起作用。
    • 如果我没记错的话,你可以将箭头函数替换为:function(item){return item.text}。我不知道它是否适用于所有浏览器,这超出了我的专业知识,但谷歌搜索“箭头功能浏览器支持”应该会有所帮助。也许,细节可能是另一个新的 SE 问题的主题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2017-04-10
    • 2016-03-12
    相关资源
    最近更新 更多