- every,判断是否所有元素都符合,需要每个都为true才返回true,否则返回false
- some,判断是否有元素符合,一旦遇到true则停止
- map,每个元素按function返回结果构成新数组
- filter,返回所有符合条件的元素构成的新数组
- forEach,单独执行每个元素,无返回
各函数执行时需要传入function作为参数,每次执行会传入value和index
看个例子就明白了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67var fun = function(v, i){
console.log(v,i);
return v %2 ==0;
}
var arr = [0,0,2,2,1,2,3,4,5,6,7,8];
arr.every(fun);
//-->0 0
//-->0 1
//-->2 2
//-->2 3
//-->1 4
//-->false
//every一旦遇到false则中止,并返回false
arr.some(fun)
//-->0 0
//-->true
//some一旦遇到true则中止,并返回true
arr.map(fun)
//-->0 0
//-->0 1
//-->2 2
//-->2 3
//-->1 4
//-->2 5
//-->3 6
//-->4 7
//-->5 8
//-->6 9
//-->7 10
//-->8 11
//-->[true, true, true, true, false, true, false, true, false, true, false, true]
//map会执行每个元素并把function返回的结果组成新数组,不改变原数组
arr.filter(fun)
//-->0 0
//-->0 1
//-->2 2
//-->2 3
//-->1 4
//-->2 5
//-->3 6
//-->4 7
//-->5 8
//-->6 9
//-->7 10
//-->8 11
//-->[0, 0, 2, 2, 2, 4, 6, 8]
//filter跟map不同的是新数组不是返回值,而是返回true的元素
arr.forEach(fun)
//-->0 0
//-->0 1
//-->2 2
//-->2 3
//-->1 4
//-->2 5
//-->3 6
//-->4 7
//-->5 8
//-->6 9
//-->7 10
//-->8 11
//-->undefined
//forEach不改变原数组,也无返回值,只是把数组依个执行了一下