数组 forEach、filter、map 理解

参考文档

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碰触
    原文地址: https://segmentfault.com/a/1190000010871831
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞