在获取服务器给予的数据时,有些时候我们需要获取一些特定值出现的次数
如上图,需要获取数组中所有省出现的次数,结果需求如下:
思路:
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)