学些ES6:Map

Map:

初始化:

const mapSize = (new Map()).size; // mapSize: 0

const pair1 = [1, ‘one‘];
const pair2 = [2, ‘two‘];

const map = new Map([pair1, pair2]); // new Map().set(...pair1).set(...pair2);

// 以最后设的值为准:

const pair1 = [1, ‘one‘];
const pair2 = [1, ‘uno‘];
const pair3 = [1, ‘eins‘];
const pair4 = [2, ‘two‘];
const map = new Map([pair1, pair2, pair3, pair4]); // new Map().set(...pair3).set(...pair4);

let map = new Map();
const obj = {x: 1, y: 2};
const keys = Object.keys(obj);
keys.forEach(key => map.set(key, obj[key]));

set, get, has:

let map = new Map();
map.set(‘key‘, ‘value‘); // set可以连用哦
const value = map.get(‘key‘);

可以使用任何东西做key哦:

let map = new Map();
const obj = {};
map.set({}, ‘object is key‘);

还有has方法:

let map = new Map([[‘key‘, ‘VALUE‘]]);
const hasKey = map.has(‘key‘);

keys与values方法:

let map = new Map();
map.set(1, ‘one‘).set(2, ‘two‘);
assert.deepEqual([...map.keys()], [1,2]);
assert.deepEqual([...map.values()], [‘one‘, ‘two‘]);

时间: 2024-10-31 20:23:32

学些ES6:Map的相关文章

学些ES6:Destructuring

Destructuring: 数组: let [firstValue] = [1]; // firstValue: 1 let c, d;let [a, b] = [c, d] = [1, 2]; var [head, ...tail] = [1, 2, 3, 4]; // tail: [2,3,4] 可以交换变量: let [x, y] = ['ax', 'why'];[x, y] = [y, x]; // x: why, y:ax const all = ['ax', 'why', 'zet

学些ES6:反射

Reflect: 基础: let Class = class {}; Reflect.construct(Class) instanceof Class // true let obj = {x: 23}; Reflect.get(obj, 'x') // 23 Reflect.has(obj, 'x') // true apply: 执行函数: let fn = () => {return 42;}; Reflect.apply(fn) // 42 指定context: class Fourt

学些ES6:generator

Generator: 创建: function* g() {} // g: [object Generator] let g = function*() {}; let obj = {*g() {}}; const generatorName = 'g';let obj = {*[generatorName]() {}}; const generatorName = 'g';class Klazz {*[generatorName]() {}} iterator: const generator

学些ES6:类

类(class): class关键词: let TestClass = class {};const instance = new TestClass(); {class Inside {}} typeof Inside // undefined: block scoped 方法与constructor: class User {constructor(id) {this.id = id;} sayHello(){return 'hello'+this.id;}}const user = new

运维工程师该干什么学些什么?[致菜鸟]

很多刚学linux运维的朋友,总是搞不懂,运维工程师工作中干些啥?学的这些东西有什么用?今日我特来总结总结,希望能帮助即将跨入该行的人形成一个整体的思路.下面红色字体代表所要掌握的LInux免费开源工具. 运维工程师干些什么 总结两句话 1.  保障业务长期稳定运行(如网站服务器.游戏服务器等等). 2.  保障数据安全可靠(如用户名密码.游戏数据.博客文章.交易数据等等). 由这两句话推演运维工程师要学些什么 一.保障业务长期稳定运行 出一点点差错,用户就要投诉了. 1.业务跑在什么上面? 网

「01」机器学习,到底在学些什么?

阅读 0 编辑文章 大家好,欢迎来到久违的机器学习系列,这是「美团」算法工程师带你入门机器学习 专栏的第一篇文章,不会太长,一半聊想法,一半聊干货.熟悉我的朋友可能知道,我以前的文章比较随意,涉及的内容极广,包括但不限于Python/Java/C/C++,网络编程,Hadoop等,但主要核心还是机器学习算法和数据科学相关的主题,这一点没变过. 最近认真总结和思考了之前的博客内容,决定将自己从入门到现在一路走来的学习经验和理解整理一番,帮助更多后来的小伙伴更好的入门,所以就有了这个系列.以前的知乎

es6 Map,Set 和 WeakMap,WeakSet

这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的.同时,在进行属性值添加与获取时有专门的get,set 方法. // Sets var s = new Set(); s.add("hello").add("goodbye").add("hello"); s.size === 2; s.has("hello") === true;

ES6 Map/WeakMap

JS的对象本身就是个键值结构,ES6为什么还需要加Map呢,它与普通的JS对象有何区别? 一.Map 1. Map构造器 先看Map的简单用法 // 字符串作为key, 和JS对象类似 var map = new Map() // set map.set('name', 'John') map.set('age', 29) // get map.get('name') // John map.get('age') // 29 这么对代码,看起来确实没有JS对象简洁 但Map的强大之处在于它的ke

六、es6 map

一.map的特点 JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 Map 数据结构.它类似于对象,也是键值对的集合,但是"键"的范围不限于字符串,各种类型的值(包括对象)都可以当作键.也就是说,Object 结构提供了"字符串-值"的对应,Map 结构提供了"值-值"的对应,是一种更完善的 Hash 结构实现.如果