js 中Map使用

function Map() {

/** 存放键的数组(遍历用到) */

this.keys = new Array();

/** 存放数据 */

this.data = new Object();

/**

* 放入一个键值对

* @param {String} key

* @param {Object} value

*/

this.put = function(key, value) {

if(this.data[key] == null){

this.keys.push(key);

}

this.data[key] = value;

};

/**

* 获取某键对应的值

* @param {String} key

* @return {Object} value

*/

this.get = function(key) {

return this.data[key];

};

/**

* 删除一个键值对

* @param {String} key

*/

this.remove = function(key) {

this.keys.remove(key);

this.data[key] = null;

};

/**

* 遍历Map,执行处理函数

*

* @param {Function} 回调函数 function(key,value,index){..}

*/

this.each = function(fn){

if(typeof fn != 'function'){

return;

}

var len = this.keys.length;

for(var i=0;i<len;i++){

var k = this.keys[i];

fn(k,this.data[k],i);

}

};

/**

* 获取键值数组(类似Java的entrySet())

* @return 键值对象{key,value}的数组

*/

this.entrys = function() {

var len = this.keys.length;

var entrys = new Array(len);

for (var i = 0; i < len; i++) {

entrys[i] = {

key : this.keys[i],

value : this.data[i]

};

}

return entrys;

};

/**

* 判断Map是否为空

*/

this.isEmpty = function() {

return this.keys.length == 0;

};

/**

* 获取键值对数量

*/

this.size = function(){

return this.keys.length;

};

/**

* 重写toString

*/

this.toString = function(){

var s = "{";

for(var i=0;i<this.keys.length;i++,s+=','){

var k = this.keys[i];

s += k+"="+this.data[k];

}

s+="}";

return s;

};

}

这里举例简单的 map.each()方法 求和计算

var map = new Map();

map.put("a",5);

map.put("b",10);

map.put("c",15);

map.put("d",20);

var sum = 0;

if(map.size()>0){

map.each(function(e_key, e_value, e_i){

sum = sum + e_value;

});

}


原文地址:http://blog.51cto.com/xiaok007/2146172

时间: 2024-10-14 20:59:50

js 中Map使用的相关文章

js中map和python中的map

js 中的map: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81] var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

廖雪峰教程笔记:js中map和reduce的用法

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果: function pow(x) { return x * x; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map(pow); // [1, 4,

js中 map 遍历数组

map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组.注意,这个方法不会改变原始数组. 在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) ,但其实,你的回调函数也可以支持多个参数,譬如:元素的索引index.原始数组arr. 例子:使用 map 方法来为 oldArray 中的每一项增加3,并且在 newArray 中保存它们. oldArray 不应该被改变. var oldArray = [1,2,3,4,5]; var newAr

js 中 Map/Set 集合

Map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: 1 var names = ['Michael', 'Bob', 'Tracy']; 2 var scores = [95, 75, 85]; 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,Array越长,耗时越长. 如果用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论

js中map,forEach,filter,reduce等方法是ECMAScript5 Array新增方法

数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组(JavaScript 数组详解)虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充. Array.isArray(element) 这是Array对象的一个静态函数,用来判断一个对象是不是数组 var a = new Array(123); var b = new Date(); console.log(Array.isArray(a)); //true console.log(Array

JS中map()与forEach()的用法

相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3.匿名函数中的this都是指向window 4.只能遍历数组 不同点: map() map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值 也就是map()进行处理之后返回一个新的数组 ??注意:map()方法不会对空数组进行检测 map方法不会改变原始数组 var arr = [0,2,4,6,8]; var str = arr

JS中map()与forEach()的区别和用法

相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3.匿名函数中的this都是指向window 4.只能遍历数组 不同点: map() map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值 也就是map()进行处理之后返回一个新的数组 ??注意:map()方法不会对空数组进行检测 map方法不会改变原始数组 var arr = [0,2,4,6,8];var str = arr.

js中map、filter用法

var a = [0, 2, 3, 4]; a = a.map(function (i) { return i + 1; }).filter(function (i) { console.log(i) return i % 2 != 0; }); console.log(a); //3,5 原文地址:https://www.cnblogs.com/rockyan/p/8573736.html

如何在 javascript / js 中 建立一个map

建立map的方式(其实用的是json实现方式) var a = {}; a["key1"] = "value1"; a["key2"] = "value2"; 既然是个map就有检索某个键是否存在的方法,这样写 if ("key1" in a) { // something } else { // something else } 简单的一句话声明map里面的key和value的方式: var a = {'