关于获取对象中特定值的数量

263 阅读1分钟

在获取服务器给予的数据时,有些时候我们需要获取一些特定值出现的次数 1652685044167.png

如上图,需要获取数组中所有省出现的次数,结果需求如下: 1652685105731.png

思路:

1、首先声明空数组用于存储数据(后文均称为目标数组

2、遍历需要提取数据的对象数据(需要提取的数据在后面称为迁移值

3、在遍历中声明一个下标值

4、使用findIndex数组方法判断目标数组里是否已经存在对象数据的迁移值,若有则返回该元素下标,若无则返回“-1”

5、做出条件判断:

1、若下标值为“-1”,即表示目标数组无对象数据迁移值,则创建对象并添加对象至目标数组内;对象的对象名为需要获取的特定值,“value”(根据需求进行定义,不一定是“value”)为“1”(旨在没有该对象名时添加的第一个初始值)

2、若下标值不为“-1",即表示目标数组已存在对象数据迁移值,在此基础上只通过返回的该下标寻获该值并使其自增

    let data = []
    dataList.forEach(item => {
        const index = data.findIndex(value => value.name == item.province)
        if (index == -1) {
            data.push({
                name: item.province,
                value: 1
            })
        } else {
            data[index].value++
        }
    })
    console.log(data)