js map的使用

js map的使用,第1张

map()函数——用于对数组对象进行处理,并返回处理之后的数组

前提是在map的回调函数中,没有修改item。直接return了item。 如果我们不想修改arr的值,而只需要一个newArr来存储新的值。 切记,不要在回调函数中,修改item。 即直接item属性=值。这种 *** 作。

如下图,如果修改了item。那么原始的arr也会改变。

本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍 需要的朋友参考下   复制代码 代码如下: /   MAP对象 实现MAP功能     接口   size()     获取MAP元素个数   isEmpty()    判断MAP是否为空   clear()     删除MAP所有元素   put(key value)   向MAP中增加元素(key value)   remove(key)    删除指定KEY的元素 成功返回True 失败返回False   get(key)    获取指定KEY的元素值VALUE 失败返回NULL   element(index)   获取指定索引的元素(使用element key element value获取KEY和VALUE) 失败返回NULL   containsKey(key)  判断MAP中是否含有指定KEY的元素   containsValue(value) 判断MAP中是否含有指定VALUE的元素   values()    获取MAP中所有VALUE的数组(ARRAY)   keys()     获取MAP中所有KEY的数组(ARRAY)     例子   var map = new Map();     map put("key" "value");   var val = map get("key")   ……    / function Map() {     this elements = new Array();     //获取MAP元素个数     this size = function() {         return this elements length;     };     //判断MAP是否为空     this isEmpty = function() {         return (this elements length < );     };     //删除MAP所有元素     this clear = function() {         this elements = new Array();     };     //向MAP中增加元素(key value)     this put = function(_key _value) {         this elements push( {             key : _key             value : _value         });     };     //删除指定KEY的元素 成功返回True 失败返回False     this remove = function(_key) {         var bln = false;         try {             for (i = ; i < this elements length; i++) {                 if (this elements[i] key == _key) {                     this elements splice(i );                     return true;                 }             }         } catch (e) {             bln = false;         }         return bln;     };     //获取指定KEY的元素值VALUE 失败返回NULL     this get = function(_key) {         try {             for (i = ; i < this elements length; i++) {                 if (this elements[i] key == _key) {                     return this elements[i] value;                 }             }         } catch (e) {             return null;         }     };     //获取指定索引的元素(使用element key element value获取KEY和VALUE) 失败返回NULL     this element = function(_index) {         if (_index < || _index >= this elements length) {             return null;         }         return this elements[_index];     };     //判断MAP中是否含有指定KEY的元素     this containsKey = function(_key) {         var bln = false;         try {             for (i = ; i < this elements length; i++) {                 if (this elements[i] key == _key) {                     bln = true;                 }             }         } catch (e) {             bln = false;         }         return bln;     };     //判断MAP中是否含有指定VALUE的元素     this containsValue = function(_value) {         var bln = false;         try {             for (i = ; i < this elements length; i++) {                 if (this elements[i] value == _value) {                     bln = true;                 }             }         } catch (e) {             bln = false;         }         return bln;     };     //获取MAP中所有VALUE的数组(ARRAY)     this values = function() {         var arr = new Array();         for (i = ; i < this elements length; i++) {             arr push(this elements[i] value);         }         return arr;     };     //获取MAP中所有KEY的数组(ARRAY)     this keys = function() {         var arr = new Array();         for (i = ; i < this elements length; i++) {             arr push(this elements[i] key);         }         return arr;     }; } 复制代码 代码如下: /   js实现list    / function List() {     this value = [];     / 添加 /     this add = function(obj) {         return this value push(obj);     };     / 大小 /     this size = function() {         return this value length;     };     / 返回指定索引的值 /     this get = function(index) {         return this value[index];     };     / 删除指定索引的值 /     this remove = function(index) {         this value splice(index );         return this value;     };     / 删除全部值 /     this removeAll = function() {         return this value = [];     };     / 是否包含某个对象 /     this constains = function(obj) {         for ( var i in this value) {             if (obj == this value[i]) {                 return true;             } else {                 continue;             }         }         return false;     };     / 是否包含某个对象 /     this getAll = function() {         var allInfos = ;         for ( var i in this value) {             if(i != (value length )){                 allInfos += this value[i]+" ";             }else{                 allInfos += this value[i];             }         }         alert(allInfos);         return allInfos += this value[i]+" ";;     }; } lishixinzhi/Article/program/Java/JSP/201311/20400

Map映射是ES6里面新增的一个对象,是一组键值对的结构,具有极快的查找速度。

Map是类似Object的一种键值对集合,区别在于Map的键不仅限于是字符串,其他各种类型的值包括对象都可以成为Map的键

Set也是ES6新增的对象,Set是一组key的集合,但不存储value, 而且key不重复,可自动排重

add(value):添加某个值,返回Set结构本身。

delete(value):删除某个值,返回一个布尔值,表示删除是否成功。

has(value):返回一个布尔值,表示该值是否为Set的成员。

clear():清除所有成员,没有返回值。

原文链接: >

prototype 属性

返回对象类型原型的引用。prototype 属性是 object 共有的。

objectNameprototype

说明:

用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的 *** 作。

对于数组对象,以下例子说明prototype 属性的用途。

给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Arrayprototype, 并使用它。

function array_max( ){

   var i, max = this[0];

   for (i = 1; i < thislength; i++)

   {

   if (max < this[i])

   max = this[i];

   }

   return max;

}Arrayprototypemax = array_max;var x = new Array(1, 2, 3, 4, 5, 6);var y = xmax( );// 该代码执行后,y 保存数组 x 中的最大值,或说 6。

constructor 属性

表示创建对象的函数。

objectconstructor

说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。

例如:

   x = new String("Hi");if (xconstructor == String) // 进行处理(条件为真)。

   function MyFunc {// 函数体。}

   y = new MyFunc;if (yconstructor == MyFunc) // 进行处理(条件为真)。

for(var i in map ){ //i就是map里面的key, //map[i],就是根据key值(i)获取key(i)对应的value(Student)值 //map[i]name就是回去value(Student)值所对应的属性}

以上就是关于js map的使用全部的内容,包括:js map的使用、JS Map 和 List 的简单实现代码、JS新增对象Map、Set等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10127845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存