参考文档

Array MDN

forEach、filter、map

1. forEach

1.1 参数

1.1.1 callback

用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。

1.1.2 thisArg

可选。执行 callback 时的用于 this 的值。

1.2 返回值

一个新数组,每个元素都是回调函数的结果。

1.3 范例

var arr = [1 , 2 , 3 , 4];
var thisArg = {name: 'grayVTouch'};
arr.forEach(function(val , index , arr){
    arr[index] = val.toUpperCase();
    console.log(this); // {name: 'grayVTouch'}
} , thisArg);

console.log(arr);

2. filter

2.1 参数

2.1.1 callback

用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。

2.1.2 thisArg

可选。执行 callback 时的用于 this 的值。

2.2 返回值

一个新的通过测试的元素的集合的数组

2.3 范例

var arr = [1 , 2 , 3 , 4];
var thisArg = {name: 'grayVTouch'};
var res = arr.filter(function(val , index , arr){
    console.log(this); // {name: 'grayVTouch'}
    
    if (val > 3) {
        return true;
    }
    
    return false;
} , thisArg);

console.log(arr);
console.log(res);

3. map

3.1 参数

3.1.1 callback

用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。

3.1.2 thisArg

可选。执行 callback 时的用于 this 的值。

3.2 返回值

一个新数组,每个元素都是回调函数的结果。

3.3 范例

var arr = [1 , 2 , 3 , 4];
var thisArg = {name: 'grayVTouch'};
var res = arr.map(function(val , index , arr){
    console.log(this); // {name: 'grayVTouch'}
    return val + '数据测试';
} , thisArg);

console.log(arr);
console.log(res);

灰色v碰触
2.9k 声望42 粉丝

爱技术,爱生活