数组迭代方法
1.some()迭代数组每一项,只要有一项符合条件就返回true,否则返回false。
2.every()迭代数组每一项,只有每一项都符合添加就返回true,否则返回false。
3.map()迭代数组每一项,可以给特定的条件,返回新的数组。
4.filter()迭代数组每一项,可以筛选出满足条件的项,返回新的数组。
5.forEach()迭代数组每一项,没有返回项。
6.find()返回数组满足条件的第一个元素。
下面我用五个例子说明其用途
1).some()迭代数组每一项,只要有一项符合条件就返回true,否则返回false。
// 定义一个数组
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
// some()迭代数组,数组有一项满足条件就返回true
let value1 = arr.some(item => item.age >= 30)
console.log("some调试结果,是否有大于30岁的员工:"+ value1)
//some调试结果,是否有大于30岁的员工:true
2).every()迭代数组每一项,只有每一项都符合添加就返回true,否则返回false。
// 定义一个数组
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
// every()迭代数组,数组所有项满足条件,就返回true
let value1 = arr.every(item => item.age >= 12)
let value2 = arr.every(item => item.age >= 30)
console.log("every调试结果,是否所有员工大于12岁:" + value1)
console.log("every调试结果,是否所有员工大于30岁:" + value2)
//every调试结果,是否所有员工大于12岁:true
//every调试结果,是否所有员工大于30岁:false
3).map()迭代数组每一项,可以给特定的条件,返回新的数组。
// 定义一个数组
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
// map给数组每一项设置特定条件,返回一个新数组
let arr1 = arr.map(item => {
return {
name: item.name,
wage: item.wage + 500
}
})
console.log(arr1)
/*
{ name: 'Bob', age: 18, wage:3500},
{ name: 'Peter', age: 16, wage: 4500 },
{ name: 'Lynn', age: 28, wage: 5500 },
{ name: 'Jack', age: 38, wage: 6500 }
*/
4.filter()迭代数组每一项,可以筛选出满足条件的项,返回新的数组。
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
// 大于20岁大员工
let arr1 = arr.filter(item => item.age >20)
console.log(arr1)
/*
[
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
]
*/
5.forEach()迭代数组每一项,没有返回项。
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
// 老板说每人薪水涨300
let arr1 = arr.forEach(item => {
item.wage += 300
})
console.log(arr)
console.log("arr1是"+arr)
/*
[
{ name: 'Bob', age: 18, wage:3300},
{ name: 'Peter', age: 16, wage: 4300 },
{ name: 'Lynn', age: 28, wage: 5300 },
{ name: 'Jack', age: 38, wage: 6300 }
]
*/
//arr1是undefined
6.find()返回数组满足条件的第一个元素
let arr = new Array(
{ name: 'Bob', age: 18, wage:3000},
{ name: 'Peter', age: 16, wage: 4000 },
{ name: 'Lynn', age: 28, wage: 5000 },
{ name: 'Jack', age: 38, wage: 6000 }
)
const item = arr.find(item => item.name === 'Bob')
console.log(item)
// { name: 'Bob', age: 18, wage:3000}
思考与总结
上面五个数组迭代方法各自有各自的功能,具体业务场景可以灵活选择