1. 程式人生 > >關於array中的map,filter,some,every,forEach方法

關於array中的map,filter,some,every,forEach方法

forEach()方法,從頭至尾遍歷陣列,為每個元素呼叫指定的函式。

1

2

3

4

5

6

7

8

9

var a = [1,2,3,4,5];

var sum = 0;

a.forEach(function (value) {

sum += value

})

console.log(sum); //sum = 15

map()方法

和forEach()類似,呼叫陣列的每個元素傳遞給指定函式,並返回一個數組,所以它和forEach()的區別在於,有一個返回值。不修改原陣列,返回的陣列長度和原陣列相同

1

2

3

4

5

6

7

var a = [1,2,3,4,5];

var b = a.map(function (value) {

return value+1

})

console.log(b); //返回[2,3,4,5,6]

filter()方法,返回的是呼叫陣列的一個子集。

1

2

3

4

5

6

7

var a = [1,2,3,4,5];

var

 b = a.filter(function (value) {

return value > 3

})

console.log(b); //返回[4,5]

  注意:如果使用map()方法,返回的是[false, false, false, true, true]

 filter()會跳過稀疏陣列中缺少的元素,他的返回陣列總是稠密的。所以可以用一下方法來壓縮稀疏陣列的空缺。

1

2

3

4

5

6

7

var a = [1,2,,,5];

var

 b = a.filter(function (value) {

return true

})

console.log(b); //返回[1,2,5]

every()和some()

every()方法是隻有陣列中所以元素都滿足某個條件才會返回true;some()方法是隻要有滿足條件的值,就返回true。

以every()方法為例

1

2

3

4

5

6

7

8

9

var a = [1,2,3,4,5];

a.every(function (value) {

return value < 10

}) //true

a.every(function (value) {

return value % 2 === 0

}) //false