JavaScript中的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: 20}, {key: 3, value: 30}]; var reformattedArray = kvArray.map(function(obj) { var rObj = {}; rObj[obj.key] = obj.value; return rObj; }); // kvArray不变,reformattedArray -> [{1: 10}, {2: 20}, {3: 30}],
再举一个例子,返回一个数组,数组中元素为原始数组的平方根:
var numbers = [4, 9, 16, 25]; function myFunction() { x = document.getElementById("demo") x.innerHTML = numbers.map(Math.sqrt); }
输出结果为:
2,3,4,5
map() 方法定义和用法
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
map() 方法语法
array.map(function(currentValue,index,arr), thisValue)
参数说明
参数 | 描述 |
---|---|
function(currentValue, index,arr) | 必须。函数,数组中的每个元素都会执行这个函数 函数参数: 参数描述currentValue必须。当前元素的值index可选。当前元素的索引值arr可选。当前元素属于的数组对象 |
thisValue | 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。 |
通过以上内容我们知道了js map函数如何返回对象数组?感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!