<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>js迭代方法</title>
</head>
<body>
<script>
// 1.定义:ES5为数组对象定义了5个迭代方法(即递归,简单的说就是自己可以调用自己) 。
// 每个方法接收两个参数:要在每一项上运行的函数(接收3个参数:数组项的值,该项在数组中的位置,数组对象本身)和(可选的)运行该函数的作用域对象——影响this的值。
// 以下5种方法,都不会改变数组本身。
// 2.每个迭代方法的作用:
// every()对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true ;
let arr = [1, 2, 3, 4, 5];
let every = arr.every((item, index, array) => {
return item > 2;
});
console.log(arr); //[1,2,3,4,5]
console.log(every); //false
// some()对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true;
let some = arr.some((item, index, array) => {
return item > 2;
});
console.log(arr); //[1,2,3,4,5]
console.log(some); //true
// filter()对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组 ;
let filter = arr.filter((item, index, array) => {
return item > 2;
});
console.log(arr); //[1,2,3,4,5]
console.log(filter); //true
// forEach()对数组中的每一项执行函数,没有返回值。类似于for循环。
let foreach = arr.forEach((item, index, array) => {
console.log(item + ' ' + index + ' ' + array)
});
console.log(arr); //[1,2,3,4,5]
console.log(foreach); //undefined
// map()对数组中的每一项执行函数,返回(处理后的)每一项。
let map = arr.map((item, index, array) => {
return item>2;
})
console.log(arr);//[1,2,3,4,5]
console.log(map);//[false,false,true,true,true]
// 或
arr.map((item)=>{
console.log(item)
})
// 以上方法中,最相似的是every()和some()方法,他们都用于查询数组中的项是否满足某个条件;理解性的说,every()就是‘与’,some()就是‘或’,这样就好理解多了。
</script>
</body>
</html>
注释都在代码里面,