我们今天说的是一些数组的方法
相信一写小伙伴们在数组去重的时候,和一些进行查找的时候大多时候的话我们用for去遍历的时候就很麻烦
今天就叫你爱上这些方法·
/*
forEach((item, index, arr) => {})
map
filter
some
every
reduce
find
findIndex
大家经常使用的可能有这些
map filter some find
*/
我们先来使用一下
首先我们创建一个数组
const stus = [
{
name: "张三",
age: 19,
sex: '男'
},{
name: "李四",
age: 20,
sex: '女'
},{
name: "王五",
age: 18,
sex: '女'
},{
name: "赵六",
age: 16,
sex: '男'
},{
name: "王耀亭",
age: 22,
sex: '男'
}
]
我们如果想把这些学生放在东湖
// 把这些学生放在东湖
stus.forEach(student => student.classroom = "东湖")
console.log(stus)
如果我们想叫把所有的学生姓名统计一下会把返回值放在新数组
// const names = stus.map(student => student.name)
// console.log(names)
获得所有的男生,如果返回值为true,则把当时正在遍历的student放在新数组
const male = stus.filter(student => student.sex === '男')
console.log(male)
看有没有大于18的返回的是布尔值
const isGte18 = stus.some(student => student.age >= 18)
console.log(isGte18)
看是不是都大于18
const isAllGte18 = stus.every(student => student.age >= 18)
console.log(isAllGte18)
找年龄之合
const ageTotal = stus.reduce((sum, student) => sum += student.age, 0)
console.log(ageTotal)
查找王耀亭
const _student = stus.find(student => student.name === "王耀亭")
console.log(_student)
查找王耀亭下标
·
const index = stus.findIndex(student => student.name === "王耀亭")
console.log(index)
上面的方法基本上我们要对数组的操作都能满足
给大家来个完整的集合
// 把这些学生放在东湖
stus.forEach(student => student.classroom = "东湖")
console.log(stus)
//.toFixed(2)这个方法的话可以叫我的数字保留两位小数
// 把所有的学生姓名统计一下 会把返回值放在新数组
const names = stus.map(student => student.name)
console.log(names)
// 获得所有的男生 如果返回值为true,则把当时正在遍历的student放在新数组
const male = stus.filter(student => student.sex === '男')
console.log(male)
// 有没有大于18岁的
const isGte18 = stus.some(student => student.age >= 18)
console.log(isGte18)
// 是不是都大于等于18岁
const isAllGte18 = stus.every(student => student.age >= 18)
console.log(isAllGte18)
// 年龄之和
const ageTotal = stus.reduce((sum, student) => sum += student.age, 0)
console.log(ageTotal)
// 查找王耀亭
const _student = stus.find(student => student.name === "王耀亭")
console.log(_student)
// 查找下标
const index = stus.findIndex(student => student.name === "王耀亭")
console.log(index)
希望对小伙伴可以有帮助
看到这的都给个3连再走好不好