Deduplication of array data, determine the number of occurrences of character elements and count this number

           demo() {
                let data = [  // 模拟获取的数据
                    {"tid": "1478348630611169282", "region": "孟加拉"},
                    {"tid": "1478348630623752194", "region": null},
                    {"tid": "1478348630636335105", "region": "迪拜"},
                    {"tid": "1478348630644723713", "region": "希腊"},
                    {"tid": "1478348630653112321", "region": "希腊"},
                    {"tid": "1478348630665695233", "region": "迪拜"},
                    {"tid": "1478348630674083841", "region": "迪拜"},
                    {"tid": "1478348630686666753", "region": null},
                    {"tid": "1478348630699249666", "region": null},
                    {"tid": "1478348630711832578", "region": "塔吉克斯坦"},
                    {"tid": "1478348630724415489", "region": "塔吉克斯坦"},
                    {"tid": "1478348630732804098", "region": null},
                    {"tid": "1478348630741192705", "region": "摩洛哥"},
                    {"tid": "1478348630749581313", "region": "马来西亚"},
                    {"tid": "1478348630757969921", "region": "孟加拉"},
                    {"tid": "1478348630770552834", "region": "摩洛哥"},
                    {"tid": "1478348630783135746", "region": "摩洛哥"},
                    {"tid": "1483728779334529026", "region": "孟加拉"}
                ]
                let distinct = [] //去重数据
                let newDataArr = [] //新数据
                data.sort()
                data.forEach((item, index) => {
                    if (item.region == null) {
                        item.region = "未知"
                    }
                    distinct.push(item.region)
                    distinct = [...new Set(distinct)]
                })
                console.log(distinct) //["孟加拉", "未知", "迪拜", "希腊", "塔吉克斯坦", "摩洛哥", "马来西亚"]

                distinct.forEach((item, index) => {
                    let count = 0 //记录数据出现的次数
                    for (let j = 0; j < data.length; j++) {
                        if (distinct[index] === data[j].region) {
                            count++
                        }
                    }
                    newDataArr.push({name: distinct[index], number: count})
                })
                console.log(newDataArr)
                /*  去重后记录数据出现次数 -- 新数据
                    [
                        {"name": "孟加拉", "number": 3},
                        {"name": "未知", "number": 4},
                        {"name": "迪拜", "number": 3},
                        {"name": "希腊", "number": 2},
                        {"name": "塔吉克斯坦", "number": 2},
                        {"name": "摩洛哥", "number": 3},
                        {"name": "马来西亚", "number": 1}
                    ]
                */
            },

Guess you like

Origin blog.csdn.net/lovexiuwei/article/details/122966394