目录
- 前言
- 对象/字典(Map)
- 数组(Array)
- 字符串(String)
- 字典、数组、字符串的具体操作
结束语
前言
在HarmonyOS开发中,关于数据类型的处理是非常常见的使用场景,尤其是字典、数组和字符串这三种非常基础且常用的数据结构,它们在数据处理、信息存储和用户界面展示等方面占有着非常重要的角色,也是我们在HarmonyOS开发中不可避免的使用知识。那么本文就来详细分享一下在HarmonyOS开发中如何处理这些数据结构,包括它们的使用和应用场景,记录一下,分享给用需要的开发者。
对象/字典(Map)
关于对象的定义,字典是一种键值对集合,也是非常常见且常用的数据类型,它允许我们存储和检索数据项,其中每个数据项都有一个唯一的键。其实对象类型的最简单声明方法,就是使用大括号表示对象,在大括号内部声明每个属性和方法的类型。除了原始类型,对象是 JS最基本的数据结构,但是TS对于对象类型有很多规则。
还有就是直到ES6 提供了 Map 数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。所以说,在实际开发中如果需要“键值对”的数据结构,选择Map 比 Object 更合适。1、创建字典
在HarmonyOS中,可以使用Map类来创建字典:
const m = new Map();
const o = {p: 'Hello World'};
m.has(o) // true
m.has(o) // false
2、操作字典
赋值、获取值:通过键来操作对应的值。
m.set(o, 'content') m.get(o) // "content"
- 删除键值对:使用remove方法。
m.delete(o) // true
遍历字典:可以使用forEach方法遍历字典中的所有键值对。
map.forEach((key, value) => { // 处理每个键值对 });
3、动态设置对象的key
众所周知,在TS中如果想动态设置对象的键,可以使用方括号([])语法
let key = 'name'; let answer:string = { [key]:'张三' }
4、应用场景
- 用户数据存储:存储用户设置或偏好。
缓存数据:临时存储从网络请求或数据库查询得到的数据。
数组(Array)
先来介绍一下数组的概念,其实数组是相同数据类型的元素集合,它支持通过索引访问元素。数组在 TS里面分成两种类型,分别是数组(array)和元组(tuple)。
1、创建数组
在HarmonyOS中,可以使用数组初始化语法创建数组:
let arr:number[] = [1, 2, 3]; //写法一:在数组成员的类型后面,加上一对方括号。 let arr:(number|string)[]; //写法二:如果数组成员的类型比较复杂,可以写在圆括号里面。
2、操作数组
访问元素:通过索引访问数组中的元素。
let arr:number[] = [1, 2, 3]; let foo = arr[3];
遍历数组:可以使用for循环遍历数组中的所有元素。
let arr:number[] = [1, 2, 3]; arr.forEach((key, value) => { // 处理每个键值对 });
3、多维数组
在TS使用T[][]的形式,表示二维数组,T是最底层数组成员的类型,具体写法如下所示:
let list:number[][] = [[1,2,3], [5,6,7]];
上面示例中,变量 list的类型是number[][],表示它是一个二维数组,最底层的数组成员类型是number。
4、应用场景
- 数据集合:存储一系列相关的数据。
函数参数:将数组作为参数传递给函数。
字符串(String)
先来了解string的定义,字符串是字符序列,是编程中最常用的数据类型之一,string类型包含所有字符串。
1. 创建字符串
在HarmonyOS中,可以直接使用字符串字面量或new String()创建字符串:
const x:string = 'hello'; const y:string = `${x} world`; //拼接符
2. 操作字符串
连接字符串:使用+运算符连接字符串。
const message:string = greeting + " " + name;
- 字符串长度:使用length()方法获取字符串长度。
let length = message.length;
字符串分割:使用split()方法根据分隔符分割字符串。
var str="1-2-3-4-5"; var res=str.split("-"); console.log(res); ===> ["1", "2", "3", "4", "5"]
3、charAt方法取值
通过下标去取值,具体如下所示:
var str = 'sanzhanggui'; // 通过下标取值 var res = str.charAt(0); //结果:"s"
4、字符串的遍历器接口
关于字符串的遍历器,其实是ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历,具体示例如下所示:
5、应用场景
- 文本显示:在用户界面上显示文本信息。
数据处理:处理用户输入或从文件中读取的文本数据。
对象、数组、字符串的具体操作
这里汇总一些常用的数据操作方法,后面会单独对这三个类型的处理再做专题介绍,这里只介绍在HarmonyOS开发中常用的操作,具体如下所示:
1、判断是否是字典
if (value === 'object' && value !== null)
2、判断是否是数组
if(Array.isArray(value))
3、把数组转字符串
.join('')
4、判断字符串是否含有某字符
.includes('')
5、让float保留两位小数
let counts:number = 3.1475926 counts.fixed(2) // 注意:counts必须是number类型
6、把字符串转Boo
` Boolean('str')
`7、对数组进行排序
.sort((a, b) => a - b); //从小到大进行排序
8、判断对象是否有值
可以用Object.keys()方法,因为Object.keys()方法会返回一个由给定对象的自身可枚举属性组成的数组,然后通过检查数组的长度来判断对象是否为空。
9、把数组中的所有0换成1
this.change = this. change.map(item => item === '0' ? '1' : item);
10、判断数组中是否含有某字符串
let contains: boolean = this.change.includes('0');
11、对数组进行删除某元素操作
array.splice(2,1) //删除下标是2的元素
12、对字典判断是否含有某个key值
let boo: boolean = Reflect.has(obj, 'propertyName');
结束语
通过上文关于对HarmonyOS开发中的字典、数组和字符串使用介绍,不难看出它们是HarmonyOS开发中的基础数据结构,它们在数据存储、处理和展示中发挥着重要作用。作为HarmonyOS开发者,我个人觉得掌握这些数据结构的使用方法,能够帮助我们更高效地进行HarmonyOS应用开发。可能有些开发者会觉得这些内容太简单,不认真对待,但是据我个人8年的大前端开发经验来看,往往越简单的内容越需要认真对待,尤其是在实际开发中还是应聘求职中,往往是对基本知识的掌握的考察。随着HarmonyOS生态的不断发展壮大,关于这些在实际开发中必备的基础技能,将变得越来越重要,也希望各位HarmonyOS开发者能够足够重视起来。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。