JS中的Map和Set

使用iterable内置的forEach方法

var a = [‘A‘, ‘B‘, ‘C‘];
a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    alert(element);
});

SetArray类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:

var s = new Set([‘A‘, ‘B‘, ‘C‘]);
s.forEach(function (element, sameElement, set) {
    alert(element);
});

Map的回调函数参数依次为valuekeymap本身:

var m = new Map([[1, ‘x‘], [2, ‘y‘], [3, ‘z‘]]);
m.forEach(function (value, key, map) {
    alert(value);
});

JS中参数不要求一致,可以需要几个写几个(当然多写就是undefined,而且参数名字可以随便瞎写【滑稽】)

a.forEach(function (element, index, array,adsf) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
console.log(element, index, array,adsf);
});
VM2066:5 a 0 ["a", "b", "c"] undefined
VM2066:5 b 1 ["a", "b", "c"] undefined
VM2066:5 c 2 ["a", "b", "c"] undefined

for of循环:与java中的foreach类似:

for (var x of a) {
    alert(x); // ‘A‘, ‘B‘, ‘C‘
}

JS的默认对象表示方式为{}键值对方式,但是键都是字符串,所以引用了Map

var m = new Map([[‘micheal‘,99],[‘bob‘,90],[‘baobao‘,100]]);

m.get(‘micheal‘);

也可以这样:

var m = new Map(); // 空Map m.set(‘Adam‘, 67); // 添加新的key-value m.set(‘Bob‘, 59); m.has(‘Adam‘); // 是否存在key ‘Adam‘: true m.get(‘Adam‘); // 67 m.delete(‘Adam‘); // 删除key ‘Adam‘ m.get(‘Adam‘); // undefined

Set 与java中的list相似吧但是值不重复,类型也多变;

add方法添加元素,

var s = new Set([1, 2, 3, 3, ‘3‘]);s.add(4);s.delete(2);

原文地址:https://www.cnblogs.com/amujoe/p/9019511.html

时间: 2024-07-29 19:59:05

JS中的Map和Set的相关文章

js中的Map

/* * js中的map */ function myJsMap() { // 定义myMap,并添加值 var myMap = {}; myMap["key2"] = "value2"; myMap["key1"] = "value1"; myMap["key3"] = "value3"; // 判断某个值是否在myMap中 if ("key2" in myMap)

js中的Map对象的简单示例

es6提供一个对象Map, 其功能类似于java中的Map, 下面是java中的Map和js中的Map的简单对比: js中的Map.set()相当于java中的Map.put(), js中的Map.size相当于java中的Map.size()://在js中size是属性,在Map中size()是方法. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"

js中的map, forEach

.map(fn)方法 var a=[2, 4, 6]; a.map(function(d, i, arr){ return {x:i, y:d*i, z:arr}; }); 输出结果: [{x:0, y:0, z:[2, 4, 6]},  {x:1, y:4, z:[2, 4, 6]},  {x:2, y:12, z:[2, 4, 6]}] 回调函数中传入的d是遍历数组的值, i是数组的索引, 整个数组也在第三个参数传进来 map会将原数组投射到一个长度一样的新数组中,新数组中每个对应成员的值就

JS中的map()函数

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值. 传递给map()的函数的调用方式和传递给forEach()的函数的调用方式一样.但传递给map()的函数应该有返回值.注意:map()返回的是新数组:它不修改调用的数组. 举个例子: 要求:为数组 arr 中的每个元素求二次方.不要直接修改数组 arr,结果返回新的数组 实现: function square(arr){ return arr.map(function(item) {  return i

js中创建Map集合

function Map() { //创建一个map集合 //这里定义数据结构 var struct = function(key, value) {   this.key = key; this.value = value; } //这是添加的方法 var put = function(key, value){ for (var i = 0; i < this.arr.length; i++) { if ( this.arr[i].key === key ) { this.arr[i].val

js中的map函数

方便数组操作,返回处理后的数组 三个参数:当前元素,当前元素下标,当前map的数组 arr = [{ a: 1 }, { a: 2 }, { a: 3 }]; arr.map( (arg, arg2, arg3) => { console.log(arg,arg2,arg3);return arg['a']}) 原文地址:https://www.cnblogs.com/guofan/p/9579686.html

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];

如何在 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 = {'

JS中集合对象(Array、Map、Set)及类数组对象的使用与对比

原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型,Array,Map,Set都属于iterable类型,它们可以使用for...of循环来遍历,都内置forEach方法. 数组 遍历 普通遍历 最简单的一种,也是使用频率最高的一种. let arr = ['a', 'b', 'c', 'd', 'e'] for (let i = 0; i < ar