首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS基础:Map和Set对象

本章节复习的是JS中的Map和Set对象,是个集合。 前置知识: Map和Set对象是在ES6中被引入的,作为一种由 key值标记的数据容器。...Map和Set对象承载的数据元素可以按照插入时的顺序,被迭代遍历。 1 Set对象 介绍: Set数据结构类似数组,但所有成员的值唯一。...对象只能用字符串当做键,给开发带来很大限制,ES6增加 Map数据结构,使得各种类型的值(包括对象)都可以作为键。...['abc'] ]] 数组 转 Map let a = [ ['name','leo'], [1, 'hi' ]] let b = new Map(a); Map对象 如果所有 Map 的键都是字符串...({yes: true, no: false}) // Map {"yes" => true, "no" => false} Map 转 JSON (1)Map键名都是字符串,转为对象JSON: function

12.3K31
您找到你想要的搜索结果了吗?
是的
没有找到

jsmap遍历数组对象_js遍历数组

; },this); console.log(str); //结果为 [1,2,3,4,5] forEach():只是按照顺序把数组中的元素传递给forEach中的匿名函数使用,对于空数组则不会调用到匿名函数...arr.forEach(function(i,index,arr){ sum += i; console.log("sum的值为:",sum); }) //执行5次,最终结果 10 ** js...中 map 遍历数组 ** map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。...在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) ,但其实,你的回调函数也可以支持多个参数,譬如:元素的索引index、原始数组arr。...例子:使用 map 方法来为 oldArray 中的每一项增加3,并且在 newArray 中保存它们。 oldArray 不应该被改变。

19.4K30

何时使用 Map 来代替普通的 JS 对象

作者:Dmitri Pavlutin 译者:前端小智 来源:dmitripavlutin JS 普通对象 {key: 'value'} 用于存放结构化数据。...在这种情况下不会有错误: const names = { 1: 'One', 2: 'Two', }; Object.keys(names); // => ['1', '2'] JS 会隐式地将对象的键转换为字符串...Map 接受任何类型的键 如前所述,如果对象的键不是 string 或 symbol,JS 将隐式地将其转换为字符串。...2. map 对键名没有限制 JS 中的任何对象都从原型对象继承属性,普通对象也是如此。...总结 普通 JS 对象通常可以很好地保存结构化数据,但它们也有一些局限性: 只能用字符串或 sybmol 作为键 自己的对象属性可能会与从原型继承的属性键冲突(例如 toString,constructor

2.2K20

js Map用法

创建 使用 new 关键字和 Map 构造函数可以创建一个空映射: const m = new Map(); 如果想在创建的同时初始化实例,可以给 Map 构造函数传入一个可迭代对象,需要包含键/值对数组...可迭代对象中的每个键/值对都会按照迭代顺序插入到新映射实例中(类似于二维数组): const m = new Map([ ["小明", 100], ["小红", 90], ["小兰...内存占用 Object 和 Map 的工程级实现在不同浏览器间存在明显差异,但存储单个键/值对所占用的内存数量都会随键的数量线性增加。批量添加或删除键/值对则取决于各浏览器对该类型内存分配的工程实现。...插入性能 向 Object 和 Map 中插入新键/值对的消耗大致相当,不过插入 Map 在所有浏览器中一般会稍微快一点儿。对这两个类型来说,插入速度并不会随着键/值对数量而线性增加。...这对 Map 来说是不可能的。对这两个类型而言, 查找速度不会随着键/值对数量增加而线性增加。如果代码涉及大量查找操作,那么某些情况下可能选择 Object 更好一些。

8K30

JS 数组去重(数组元素对象的情况)

js数组去重有经典的 几种方法 但当数组元素对象时,就不能简单地比较了,需要以某种方式遍历各值再判断是否已出现。...因为: 1.如果是哈希判断法,对象作哈希表的下标,就会自动转换成字符型类型,从而导致所有元素都相等,这时判断方法不再有意义。...一般最后数组就只剩一个 2.如果是直接比较法,则因为对象在内存中是按引用访问的,属性值相同的对象也不会相等,简单的直接判断不再有意义。...一般最后数组还是原样 所以就需要进行值的比较 当然了,也可以换着法来将相应对象转为字符串(不是默认的那种[object Object]) 举个例子: var array = [ {a:1,b:2...array = [ {a:1,b:2,c:3,d:4}, {a:11,b:22,c:333,d:44}, {a:111,b:222,c:333,d:444} ]; //将对象元素转换成字符串以作比较

4.2K00
领券