之前的文章梳理了JS数组与对象属性的遍历方法,本文介绍专门用以遍历并处理数据的map()方法。
一、原生map()
map()是数组的一个方法,它创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。map()里面的处理函数接受三个参数,分别指代当前元素、当前元素的索引、数组本身。(IE9以下不支持,对老旧浏览器的兼容性方法参考这里)
/**** 原生map() ****/
var arrTmp = [1,2,3];
var arrDouble = arrTmp.map(function(num){
return num*2;
})
// arrDouble -> [2,4,6]
//注意,使用map()时实际传递了3个参数:
arr.map(function(currentValue, index, array){
// currentValue -> 数组中正在处理的当前元素
// index -> 数组中正在处理的当前元素的索引
// array -> 指向map方法被调用的数组
})
["1", "2", "3.5"].map(parseInt); // 结果不是[1, 2, 3],而是[1, NaN, NaN]
["1", "2", "3.5"].map(function(num){ return parseInt(num)}); //得到正确结果[1, 2, 3]
//使用map()重组数组
var kvArray = [{key: 1, value: 10}, {key: 2, value