当前位置: 首页 > news >正文

鸿蒙开发之ArkTS数组

在鸿蒙(HarmonyOS)开发中,ArkTS 提供了对数组(Array)的完整支持,包括声明、初始化、操作和遍历等。以下是 ArkTS 中数组的详细用法和示例:

1. 数组的声明与初始化

基本语法

// 方式1:使用类型标注(推荐)
let numbers: number[] = [1, 2, 3];
let names: string[] = ["Alice", "Bob", "Charlie"];// 方式2:使用泛型(Array<T>)
let flags: Array<boolean> = [true, false, true];// 方式3:空数组(需指定类型)
let emptyArray: string[] = [];

2. 数组的常用操作

添加元素

let fruits: string[] = ["Apple", "Banana"];// push():末尾添加
fruits.push("Orange"); // ["Apple", "Banana", "Orange"]// unshift():开头添加
fruits.unshift("Mango"); // ["Mango", "Apple", "Banana", "Orange"]

删除元素

// pop():删除末尾元素
let lastFruit = fruits.pop(); // "Orange", fruits = ["Mango", "Apple", "Banana"]// shift():删除开头元素
let firstFruit = fruits.shift(); // "Mango", fruits = ["Apple", "Banana"]// splice():删除指定位置元素
fruits.splice(1, 1); // 从索引1开始删除1个元素,fruits = ["Apple"]

修改元素

let colors: string[] = ["Red", "Green", "Blue"];
colors[1] = "Yellow"; // ["Red", "Yellow", "Blue"]

数组长度

console.log(colors.length); // 

3. 数组的遍历

for…of 循环

for (const fruit of fruits) {console.log(fruit); // 依次输出 "Apple", "Banana"
}

forEach 方法

fruits.forEach((fruit, index) => {console.log(`${index}: ${fruit}`); // "0: Apple", "1: Banana"
});

map 方法(返回新数组)

let lengths = fruits.map(fruit => fruit.length); // [5, 6]

filter 方法(过滤)

let longFruits = fruits.filter(fruit => fruit.length > 5); // ["Banana"]

4. 数组的解构与展开

解构赋值

let [first, second] = fruits; // first = "Apple", second = "Banana"

展开运算符(…)

let newFruits = [...fruits, "Cherry"]; // ["Apple", "Banana", "Cherry"]

5. 多维数组

// 二维数组
let matrix: number[][] = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
];// 访问元素
console.log(matrix[1][2]); // 6

6. 鸿蒙开发中的实际应用

UI 组件中的数组

@Entry
@Component
struct TodoList {@State todos: string[] = ["Learn ArkTS", "Build App", "Publish"];build() {Column() {ForEach(this.todos, (todo) => {Text(todo).fontSize(20).margin(10);})}}
}

动态更新数组

addTodo() {this.todos.push("New Task"); // 触发 UI 重新渲染
}

总结

在这里插入图片描述

http://www.dtcms.com/a/274255.html

相关文章:

  • 深度体验飞算JavaAI:一场Java开发效率的革命
  • HarmonyOS NEXT端云一体化开发初体验
  • IPA软件源预览系统源码(源码下载)
  • 【跟着PMP学习项目管理】项目管理 之 采购管理知识点
  • Axios之核心语法详解
  • 上位机知识篇---常见的文件系统
  • 用数学构建权限系统:从集合论到位运算的高效设计
  • 前端开发—全栈开发
  • 主从服务器完整使用指南
  • 4万亿英伟达,凭什么?
  • SM712.TCT Semtech TVS二极管——电子设备的终极电路守护
  • 和鲸社区深度学习基础训练营2025年关卡2(1)纯numpy
  • 小皮面板搭建pikachu
  • 在 Linux 中配置天气机器人脚本开机自启动的完整指南
  • T16IZ遥控器教程__遥控器与无人机对频
  • 人形机器人公司融合Xsens与Manus动作捕捉技术,利用人工智能训练机器人模仿人类动作,以执行复杂任务
  • 开源“具身大脑” 实现不同机器人群体协作-RoboBrain
  • 弧焊机器人气体全方位节能指南
  • 基于MuJoCo的宇树科技G1机器人基础动作仿真研究
  • 企业培训笔记:Vue3前端框架配置
  • JAVA程序的类加载器的底层和双亲委派机制的原理
  • Bash函数详解
  • 软件开发那些基础事儿:需求、模型与生命周期
  • MySQL锁的分类
  • Linux驱动学习day22(interrupt子系统)
  • spring-boot项目集成spring-ai
  • TCP服务端处理HTT
  • V少JS基础班之第七弹
  • 【Linux】GDB/CGDB 调试器学习笔记
  • 【Git】git的回退功能