1. 程式人生 > >js 方法總結

js 方法總結

JS 的 forEach 和 map 方法都是 ES5 為處理陣列而新增的迭代方法,區別在於 map 方法返回一個新陣列,而 forEach 方法沒有返回值。舉個例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

var arr = [1, 2, 4, 7, 8];

// 目標:上述數組裡的每一項偶數都+1,使整個數組裡都是奇數。

 

// map 方法

var result = arr.map(

function(item) {

    return item % 2 === 0 ? item + 1 : item;

});

console.log(result);  // [1, 3, 5, 7, 9]

 

// forEach 方法

var result = [];

arr.forEach(function

(item) {

    if (item % 2 === 0) {

        item += 1;

    }

    result.push(item);

});

console.log(result);  // [1, 3, 5, 7, 9]

從上述例子可以看出,使用 map 方法要方便的多,程式碼也更優雅。這裡需要注意的是這兩個方法不支援 IE9 以下的 IE 瀏覽器,要相容的話一般用 for 迴圈來實現:

1

2

3

4

5

6

7

8

9

// for 迴圈方法

var result = [];

for (var i = 0; i < arr.length; i++) {

    if (arr[i] % 2 === 0) {

        arr[i] += 1;

    }

    result.push(arr[i]);

}

console.log(result);  // [1, 3, 5, 7, 9]