本日我们就来学习一下JavaScript数组迭代方法,看看他们都有什么妙用?
1、forEach() 迭代数组每一项,没有返回值
2、every() 迭代数组每一项,每项都符合条件的才返回true,反之false

3、some() 迭代数组每一项,只要有一项符合条件就返回true,如果全部不符合才返回false
4、map() 迭代数组每一项,可以给特定条件会返回重新组成新的数组
5、filter() 迭代数组每一项,可以给特定的条件进行筛选返回新的数组
下面我们就来仔细品味一下它们
forEach()forEach() 方法,对数组的每一项迭代,没有返回值
JavaScript数组5种迭代方法各有什么妙用?
利用场景:查看每个商品的价格和名字
let goods = [{ name: '时尚女装', price: 888.00 }, { name: '佳构腕表', price: 666.00 }] goods.forEach(item => { console.log(`${item.name}价格为${item.price}`); / 时尚女装价格为888 佳构腕表价格为666 / })every()
every() 方法,对数组中的每一项进行迭代,如果每一项都符合条件才可以返回true,反之返回false。
JavaScript数组5种迭代方法各有什么妙用?
利用场景:家里面有3个小孩,如果这3个孩子都大于3岁,才能去旅行
let childs = [{ name: '张三', age: 1 }, { name: '李四', age: 2 }, { name: '王五', age: 2 }] // 数组中须要每一个项都符合条件才返回true,反之返回false let isAdults = childs.every(child => child.age >= 3) console.log(isAdults) // false let isAdults2 = childs.every(child => child.age >= 1) console.log(isAdults2) // truesome()
some() 方法刚好和every相反,对数组的每一项迭代,只有一个选项符合条件的,就可以返回true了,只有全部不符合条件才返回false。
JavaScript数组5种迭代方法各有什么妙用?
利用场景:3.8一家人去用饭,只要有一个女性,就可以打3.8折
// sex 0:男 1:女 let people1 = [{ name: '小张', sex: 0 }, { name: '小刘', sex: 0 }, { name: '小李', sex: 0 }] // 数组中只要有一个选项符合条件的就返回true,反之返回false let discount1 = people1.some(p => p.sex === 1) console.log(discount1) // false 不打折 let people2 = [{ name: '小张', sex: 0 }, { name: '丽丽', sex: 1 }, { name: '小李', sex: 0 }] // 数组中只要有一个选项符合条件的就返回true,反之返回false let discount2 = people2.some(p => p.sex === 0) console.log(discount2) // true 打折map()
map() 方法,对数组的每一项迭代,给特定的条件返回重新组成数组。
JavaScript数组5种迭代方法各有什么妙用?
利用场景:春节老板给每个员工发奖金1w,求每个人确当月发的人为为多少
let employees = [{ name: '张三', wages: 7000 }, { name: '李四', wages: 8000 }, { name: '王五', wages: 10000 }] let employeesWages = employees.map(employee=>{ employee.wages += 10000 return employee }) console.log(employeesWages) console.log(employees) // employees和employeesWages相等,以是利用map时,要把稳如不须要修正源数据,就不要修正里面的工具 / [{name: \"大众张三\"大众, wages: 17000}, {name: \"大众李四\"大众, wages: 18000}, {name: \公众王五\"大众, wages: 20000}] / let employeesWages2 = employees.map(employee=>{ return { name: employee.name, wages: employee.wages + 10000 } }) console.log(employeesWages2) console.log(employees) // 此时employeesWages2和employees就不同了filter()
filter() 方法,对数组的每一项迭代,根据给出的条件进行筛选且返回新数组
JavaScript数组5种迭代方法各有什么妙用?
利用场景:老板要看看那些员工人为高于8000?
let employees = [{ name: '张三', wages: 7000 }, { name: '李四', wages: 8000 }, { name: '王五', wages: 10000 }] let employeesFilter = employees.filter(employee=>{ return employee.wages >= 8000 }) console.log(employeesFilter) / [{name: \公众李四\"大众, wages: 8000}, {name: \公众王五\公众, wages: 10000}] /