关于数组的map、reduce、filter

map:map()方法定义在Array中,传入自己的参数,就得到一个新的Array作为结果

var aqiData = [
["北京", 90],
["上海", 50],
["福州", 10],
["广州", 50],
["成都", 90],
["西安", 100]
];

function box(arr){
return arr[1]+'分';
}
alert(aqiData.map(box));

 数组

中的每一项都进行一次box(),得到的结果返回到原数组中。

reduce

同时应用一个函数针对数组的两个值(从左到右),以减至一个值。

array.reduce(function,[ initialValue]);

 function : 函数执行在数组中每个值
 initialValue : 对象作为第一个参数回调的第一次调用使用


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

var total= aqiData.reduce(function(a,b){
return a+b;
});
alert(typeof total);//number
alert(total);//15

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

var total= aqiData.reduce(function(a,b){
return a+b;
},2);
alert(typeof total);//number
alert(total);//17

filter:它用于把Array的某些元素按照一定的规则过滤掉,然后返回剩下的元素

array1.filter(function[, thisArg])
array1 数组对象 function调用的函数
thisarg可选,可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。
函数语法
function callbackfn(value, index, array1)
value数组元素的值 index数组元素的索引 array1包含该元素的数组对象
eg:
var arr = [5, "element", 10, "the", true];

var result = arr.filter(
    function (value) {
        return (typeof value === 'string');
    }
);

document.write(result);
//  element, the

var aqiData = [
["北京", 90],
["上海", 50],
["福州", 10],
["广州", 50],
["成都", 90],
["西安", 100]
];
var box = aqiData.filter(function(arr){
return arr[1]>60;
});
alert(box);//["北京", 90] ["成都", 90] ["西安", 100]



 

原文地址:https://www.cnblogs.com/zhouqi666/p/5326553.html