map() 方法

1. 方法概述

map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
2. 例子

2.1 在字符串中使用map

在一个 String  上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组:
var map = Array.prototype.map
var a = map.call("Hello World", function(x) { return x.charCodeAt(0); })
// 下面的语句返回什么呢:
    ["1", "2", "3"].map(parseInt);

// 你可能觉的会是[1, 2, 3]
// 但实际的结果是 [1, NaN, NaN]

// 通常使用parseInt时,只需要传递一个参数.但实际上,parseInt可以有两个参数.第二个参数是进制数.可以通过语句"alert(parseInt.length)===2"来验证.
// map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身.
// 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,parseInt把传过来的索引值当成进制数来使用.从而返回了NaN.

 //应该使用如下的用户函数returnInt

 function returnInt(element){
 return parseInt(element,10);
 }

 ["1", "2", "3"].map(returnInt);// 返回[1,2,3]

3.map()方法的实现原理

 1 Array.prototype.myMap = function(callback){
 2     var arr = [];
 3     for(var i = 0; i < this.length; i++){
 4         var value = callback(this[i],i,this);
 5         if(value == null){
 6             continue;
 7         }
 8         arr.push(value);
 9     }
10     return arr;
11 }
12
13 var items = [1,2,3,4];
14
15 var arr = items.myMap(function(item,i){
16     return item*10;
17 });
时间: 2024-10-11 18:13:28

map() 方法的相关文章

JavaScript Array map() 方法

语法: array.map(function(currentValue,index,arr), thisValue) currentValue:必须.当前元素的值index:可选.当期元素的索引值arr:可选.当期元素属于的数组对象thisValue:可选.对象作为该执行回调时使用,传递给函数,用作 "this" 的值.可改变this指向, map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map

JS自带的map()方法

1. map()方法返回一个由原数组的每个元素调用一个指定方法后返回值组成的新数组. 2. 例子: 2.1 在字符串中使用map 在一个String上使用map方法获取字符串中每个字符所对应的ASCII码组成的数组: var map = Array.prototype.map var a = map.call("Hello World",function(x){ return x.charCodeAt(0); })// a的值为[72, 101, 108, 108, 111, 32,

数组的map方法

map方法 不支持IE6.7 .8 array1.map(fn) array1.map(fn[,thisArg]) 注意: fn 必须是函数,如果不是函数则会报错  TypeError: undefined is not a function4 map()不会对空数组进行检测.map()不会改变原是数组 1 .理解 (官方:一个新数组,其中的每个元素均为关联的原始的数组元素的回调函数的返回值) 下图中我把上面的话翻译了一下 2 .内置JavaScript方法用做回调函数,例如:Math对象方法

js map方法的使用

原型: array.map(callback,[ thisObject]);  callback的参数类似: [].map(function(value, index, array) { // ... }); 三个参数为:当前正在遍历的元素, 元素索引, 原数组本身. 示例: ["1", "2", "3"].map(returnInt);// 返回[1,2,3] function returnInt(element){ return parseI

转化对象为map方法

言语不多,直接上代码. private Map<String, Object> introspect(Object obj) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); BeanInfo info = Introspector.getBeanInfo(obj.getClass()); for (PropertyDescriptor pd : info.get

JavaScript中的map方法

假设有一个函数f(x)=x2;作用在一个数组[1,2,3,4,5,6,7,8,9],通常我们会用遍历的方法来实现. function f(x){ return x * x; } var arr = [1,2,3,4,5,6,7,8,9]; var result = []; for(var i=0; i<arr.length; i++){ result.push(f(arr[i])) } 这样的确可以实现,但我们有更优雅的实现. function f(x) { return x * x; } va

JS中的forEach、$.each、map方法

forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 1 var array = [1, 2, 3, 4]; 2 for (var k = 0, length = array.length; k < length; k++) { 3 alert(array[k]); 4 } Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的f

数组reduce和map方法

1.有一个长度为100的数组,请以优雅的方式求出该数组的前10个元素之和 var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],sum = 0; sum = a.slice(0, 10).reduce(function(pre, current) { return pre + current;}); console.log(sum); //55 2.不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标. v

jquery.map()方法的使用和源码分析

原型方法map跟each类似调用的是同名静态方法,只不过返回来的数据必须经过另一个原型方法pushStack方法处理之后才返回,源码如下: map: function( callback ) { return this.pushStack( jQuery.map(this, function( elem, i ) { return callback.call( elem, i, elem ); })); }, 本文主要就是分析静态map方法至于pushStack在下一篇随笔里面分析: 首先了解下

js 自带的 map() 方法

js 自带的 map() 方法 1. 方法概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组. 2. 例子 2.1 在字符串中使用map 在一个 String  上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组: var map = Array.prototype.map var a = map.call("Hello World", function(x) { return x.charCodeAt(0); }) //