遍历map的方法

概述

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

语法

array.map(callback[, thisArg])

array.map(function(value,index,array){

  return 要放入新数组的值

})

参数

function
    原数组中的元素经过该方法后返回一个新的元素。
value
    callback 的第一个参数,数组中当前被传递的元素。
index
    callback 的第二个参数,数组中当前被传递的元素的索引。(常忽略)
array
    callback 的第三个参数,调用 map 方法的数组。
thisArg
    执行 callback 函数时 this 指向的对象。

callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。

描述

map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。

map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)。

使用 map 方法处理数组时,数组元素的范围是在 callback 方法第一次调用之前就已经确定了。在 map 方法执行的过程中:原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 map 方法遍历到它们的那一时刻的值;而被删除的元素将不会被访问到。

map和array的区别:

array实例:

var list = new Array();
list.push("h");
list.push("h");
list.push("h");

//获取第二个数
list[1];

map实例:

var list = new Map();
list.put("1","h");
list.put("2","h");
list.put("3","h");

//获取key值为"2"的value值
list.2;
或
list["2"]

写一个map生成新数组的例子吧:

If(!Array.prototype.map)
    var arr=[1,2,3,4,5];
    var newArr=arr.map(function(value,index,array){
        return value*2;
    });
console.log(String(arr));//1,2,3,4,5原数组
console.log(String(newArr));//2,4,6,8,10新数组

有个大牛写的map实现原理,还没怎么看明白,先贴出来吧,欢迎指正切磋。

 1   if(!Array.prototype.map){
 2       Array.prototype.map=function(callback){
 3         var result=[];
 4         for(var i=0;i<this.length;i++){
 5           if(i in this){//防止稀疏数组
 6             result[i]=callback(this[i], i, this);
 7           }
 8         }
 9         return result;
10       }
11     }
12
13     var arr=[1,2,3,4,5];
14
15     var arr2=arr.map(function(value,index,arr){
16       return value*2;
17     });
18     document.write(String(arr2));
时间: 2024-10-07 10:53:21

遍历map的方法的相关文章

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

JAVA四种遍历Map的方法

import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; /** Created by song on 2019/1/17.*/public class MapT {public static void main(String[] args) {Map<Integer,String> map=new HashMap<>();map.put(1,"

java 中遍历Map的几种方法

转自: http://blog.csdn.net/wzb56/article/details/7864911 方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利用for-each循环: 代码举例如下 package cn.wzb; import java.util.ArrayList; import java.util.HashMap; impor

java 遍历map 方法 集合 五种的方法

以下是转载别人的日志,以方便自己以后使用,仅供自己学习之用. package com.jackey.topic; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; //循环遍历map的方法 public class CircleMap {  public

另一种遍历Map的方式: Map.Entry 和 Map.entrySet()

源网址: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是一个接口

[转]另一种遍历Map的方式: Map.Entry 和 Map.entrySet()

转自: http://blog.csdn.net/mageshuai/article/details/3523116 今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是一个接口,

转!! Java中如何遍历Map对象的4种方法

在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. [java] view

java中遍历MAP的几种方法

java中遍历MAP的几种方法 Java代码 Map<String,String> map=new HashMap<String,String>();    map.put("username", "qq");    map.put("passWord", "123");    map.put("userID", "1");    map.put("em

Map以及Set的遍历(EntrySet方法,补充enumeration和Iterator的区别)

public void mearge(Map map) { Map returnMap = new HashMap<>(); // 转换为Entry Set<Map.Entry<Object, Object>> entries = map.entrySet(); // 遍历 for (Map.Entry<Object, Object> entry : entries) { Object key = entry.getKey(); Object val = e