ES5中的数组的遍历高阶函数
————————————————————————————
注意:
这些函数都要通过callback回调使用,其中参数均为
- xxx中回调函数中的第一个参数为:当前正在遍历的元素
- xxx中回调函数中的第二个参数为:当前元素索引
- xxx中回调函数中的第三个参数为:原数组本身
————————————————————————————
1.forEach循环
作用:forEach循环,循环数组中每一个元素并采取操作, 没有返回值
{
let testArray = [1,2,3,4,5,6];
testArray.forEach((value,index) => {
console.log(index + ":" + value)
//0:1
//1:2
//2:3
//3:4
//4:5
//5:6
})
}
2.map()方法
作用:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
{
let testArray = [1,2,3,4,5];
var newArray = testArray.map((value)=>{
return value*2;
})
console.log(testArray);
// [1, 2, 3, 4, 5]
console.log(newArray);
// [2, 4, 6, 8, 10]
}
可以看出数组的map()遍历方法,并不会改变原数组
3.filter函数
作用:filter 方法是 Array 对象内置方法,它会返回通过过滤的元素,不改变原来的数组。
{
let testArray = [1,2,3,4,5];
var newArray = testArray.filter((value) => {
return value > 2;
})
console.log(testArray);
//(5) [1, 2, 3, 4, 5]
console.log(newArray);
//(3) [3, 4, 5]
}
4.every()方法
作用:every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供),返回 boolean 值,不改变原数组。
{
let testArray = [1,2,3,4,5];
let result = '';
let result2 = '';
result = testArray.every((value) => {
return value > 0
})
result2 = testArray.every((value) => {
return value > 4;
})
console.log(testArray);
// (5) [1, 2, 3, 4, 5]
console.log(result)
//true
console.log(result2)
//false
}
5.some()方法
作用:方法用于检测数组是否有一个元素符合指定条件(通过函数提供),返回 boolean 值,不改变原数组。
{
let testArray = [1,2,3,4,5];
let result = '';
let result2 = '';
result = testArray.some((value) => {
return value > 4
})
result2 = testArray.some((value) => {
return value > 6;
})
console.log(testArray);
// (5) [1, 2, 3, 4, 5]
console.log(result)
//true
console.log(result2)
//false
}
ES6遍历数组的高阶方法
1.for … in
作用:for…in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
- 遍历数组
{
let testArray = [1,2,3,4,5];
for(let i in testArray){
console.log(i);
//0
//1
//2
//3
//4
//5
}
}
- 遍历对象属性
{
let obj = {
name:'kjh',
age:18,
school:'xiyou'
}
for(let k in obj){
console.log(k) //name age school
}
}
//for ... in 循环可以遍历自身的和可枚举的属性
2.for … of
作用: for…of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for…of 循环,以替代 for…in 和 forEach() ,并支持新的迭代协议。
{
let testArray = [1,2,3,4,5];
for(let i of testArray){
console.log(i);
//1
//2
//3
//4
//5
}
}
下篇加ES6对象属性的遍历方法。