ES6中的Map与Set数据结构的简单应用
一、Map定义和基本用法
Map
是一种键值对集合,其中键和值都可以是任何类型(对象、原始值等)。与普通对象不同,Map
保持键值对的插入顺序,并且允许使用任何类型的键。
1、创建Map
const map = new Map()
2、添加键值对。语法:map.set(键名, 值)
map.set('name', 'John')
map.set(1, 'one')
map.set(true, ['boolean'])
3、获取值。语法:map.get(键名)
console.log(map.get('name')); // 输出: John
console.log(map.get(1)); // 输出: one
console.log(map.get(true)); // 输出: ['boolean']
4、检查键。
console.log(map.has('name')); // 输出: true
5、删除键值对
map.delete('name');
console.log(map.has('name')); // 输出: false
6、获取Map的大小
console.log(map.size); // 输出: 2
7、简单示例
const map = new Map()
data.failedList.forEach((item) => {if (map.has(item.failedReason)) {// 如果已存在该失败原因,取出数组并 push 当前 vinconst vinList = map.get(item.failedReason)vinList.push(item.vin)} else {// 如果不存在,初始化一个数组存储当前 vinmap.set(item.failedReason, [item.vin])}})
console.log('最终结果:', map)
//map.forEach((值, 键名) => {
//})
map.forEach((vinLists, failedReasons) => {useMessage().error(`VIN码${vinLists.join(',')}:${failedReasons}`)
})
二、Set定义和基本用法
Set
是一种值的集合,其中每个值都是唯一的,且值可以是任何类型。Set
不允许重复的值。
1、创建Set
const set = new Set();
2、添加值
set.add(1);
set.add(5);
set.add(1); // 重复值不会被添加
console.log(set.size); // 输出: 2
3、检查值
console.log(set.has(1)); // 输出: true
console.log(set.has(2)); // 输出: false
4、删除值
set.delete(5);
console.log(set.has(5)); // 输出: false