当前位置:首页 > 技术分析 > 正文内容

WPS宏(JSA)教程——Map和Set(wps如何使用宏代码)

ruisui883个月前 (02-03)技术分析41

Map对象

Map对象其实就是一种简单的键/值对的集合,可以通过for...of...在按照数据插入时的顺序遍历所有的[key: value]对元素。Map对象具有极快的查找速度。

定义Map

因为Map是个对象,因此要定义一个Map对象,有两种方法:初始化一个空对象;用二维数组初始化Map对象。

如下示例:

let friutColor0 = new Map();//创建一个空的Map对象

//创建Map对象时初始化,需要一个二维数组来进行
let friutColor1 = new Map([['Orange','orange'],['Apple','red'],['Banana','yellow']])

Map的相关操作

1、添加元素,用Map的set方法。

let friutPrice = new Map();
friutPrice.set('Apple',7.00);
friutPrice.set('Orange',4.50);

2、读取元素,用Map的get方法(,继续上方的代码进行)。

console.log(friutPrice.get('Apple'));//返回7
console.log(friutPrice.get('Orange'));//返回4.5
console.log(friutPrice.get('Banana'));//返回undefined,因为没有Banana

3、判断元素是否存在,用Map的has方法(,继续上方的代码进行)。

console.log(friutPrice.has('Banana'));//返回false
console.log(friutPrice.has('Orange'));//返回true

4、删除元素,用Map的delete方法(,继续上方的代码进行)。

console.log(friutPrice.delete('Orange'));//返回true,删除一个存在的键值对,将会返回true
console.log(friutPrice.has('Orange'));//返回false,此时该键值对不存在,返回false
console.log(friutPrice.delete('Orange'));//返回false,删除一个不存在的键值对,将会返回false

5、对同一个键值对多次赋值,新值会替换旧值。因为键在Map中是唯一的。

friutPrice.set('Banana',2.5);
friutPrice.set('Orange',4.5);
console.log(friutPrice.get('Banana'));//返回2.5
console.log(friutPrice.get('Orange'));//返回4.5
friutPrice.set('Banana',3.5);
friutPrice.set('Orange',4);
console.log(friutPrice.get('Banana'));//返回3.5
console.log(friutPrice.get('Orange'));//返回4

6、遍历Map

for (let [key, value] of friutPrice) {
  console.log(`${key} price: ¥${value}元`);
}
/*
 "Apple price: ¥7元"
 "Orange price: ¥4元"
 "Banana price: ¥3.5元"
*/

7、获取Map的大小:Map的size属性

console.log(friutPrice.size);//返回3

8、清空Map,用clear()方法

friutPrice.clear();
console.log(friutPrice.size);//返回0

Set对象

Set对象是一组唯一值的集合,可以用for...of...按照添加顺序来遍历。Set 中的值只能出现一次;它在集合 Set 中是唯一的。要理解set,那么可以将set看作是一个特殊的map,只不过只保留了key,而抛弃了value。因此,Set的所有值都是唯一的。

定义Set

因为Set是一个特殊的Map对象,因此要定义一个Set对象,有两种方法:初始化一个空Set对象;用一个一维数组初始化Set对象,Set会自动忽略重复的元素。

let friut1 = new Set(); // 空Set
let friut2 = new Set(['Apple', 'Banana', 'Orange']); // 含'Apple', 'Banana', 'Orange'
let numbers = new set([1,2,3,4,'4']);//numbers{1,2,3,4,'4'}
let array1 = ['A','B','C'];
let friut3 = new Set(array1); //{'A','B','C'}

Set常规操作

1、添加元素,用set的add方法。

let friut1 = new Set(); 
friut1.add('Pear');
friut1.add('Pine apple');

2、判断是否存在元素,用set的has方法。

console.log(friut1.has('Pear'));//返回true
console.log(friut1.has('Apple'));//返回false,因为friut1中不存在Apple

3、删除元素,delete方法

console.log(friut1.delete('Pear'));//返回true
console.log(friut1.delete('Pear'));//删除不存的元素,返回false

4、遍历Set,用for...of...

for(item of friut1)
{
  console.log(item);
}

/*
 "Pear"
 "Pine apple"
*/

5、获取Set的大小,用属性size

console.log(friut1.size);//2

6、清空Set的大小,用clear方法

friut1.clear();
console.log(friut1.size);//0

***Map和Set这两个对象,是ES6新增加的两个对象。***



关注我,持续共同学习,一起踏上wps宏(JSA)的登山之路。

#头条创作挑战赛#

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/715.html

分享给朋友:

“WPS宏(JSA)教程——Map和Set(wps如何使用宏代码)” 的相关文章

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;性能测试经验与思考1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划· 性...

面试被逼疯:聊聊Python Import System?

面试官一个小时逼疯面试者:聊聊Python Import System?对于每一位Python开发者来说,import这个关键字是再熟悉不过了,无论是我们引用官方库还是三方库,都可以通过import xxx的形式来导入。可能很多人认为这只是Python的一个最基础的常识之一,似乎没有可以扩展的点了,...

壹啦罐罐 Android 手机里的 Xposed 都装了啥

这是少数派推出的系列专题,叫做「我的手机里都装了啥」。这个系列将邀请到不同的玩家,从他们各自的角度介绍手机中最爱的或是日常使用最频繁的 App。文章将以「每周一篇」的频率更新,内容范围会包括 iOS、Android 在内的各种平台和 App。本期继续歪楼,由少数派撰稿作者@壹啦罐罐介绍他正在使用的...

学前端,这30个CSS选择器,你必须熟记

你学会了基本的id,class类选择器和descendant后代选择器,然后就觉得完事了吗?如果这样,你就会错过许多灵活运用CSS的机会。虽然本文提到的许多选择器都属于CSS3,并且只能在现代的浏览器中使用,但学会这些是大有好处的。什么是CSS选择器呢?每一条css样式定义由两部分组成,形式如下:[...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2、ES6数字排序 [1,2,3,4].sort(); // [1, 2,3,4],默认是升序...

js中数组filter方法的使用和实现

定义filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, selfArr]])[, thisArg])参数callback循环数组每个元素时调用的回调函数。回调函...