更新记录
1.0.0(2025-11-06) 下载此版本
1.0.0
平台兼容性
uni-app x(4.84)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
UArray - 多端一致数组类型
简介
UArray<T> 是一个继承自 Array<T> 的泛型类,用于解决 UTS 环境中不同平台对数组初始化的兼容性问题。在 UTS 中,new Array(10) 的行为在不同平台上表现不一致,这个工具类提供了统一的行为模式。
问题背景
在 JavaScript 和不同的平台上,new Array(10) 的行为存在差异:
- Web 平台:创建一个长度为 10 的数组,每个元素都是
undefined - Android/iOS 平台:创建一个长度为 1 的数组,其元素为数字
10
这种不一致性会导致跨平台开发时出现难以预期的行为。
功能特性
- 跨平台一致性:在所有平台上提供统一的数组初始化行为,对齐JavaScript端
- 泛型支持:支持泛型,提供类型安全
- 完全兼容原生 Array:继承自原生 Array,可以使用所有 Array 原型方法
使用方法
1. 导入 UArray 类
import { UArray } from './uarray.uts';
2. 创建指定长度的数组
// 创建一个长度为 10 的数组
const arr1 = new UArray<number>(10);
console.log(arr1.length); // 输出: 10
console.log(arr1); // 输出: [null, null, null, null, null, null, null, null, null, null]
arr1[1] = 1111
arr1[2] = 3333
console.log(arr1[0])
console.log(arr1[1])
console.log(arr1[2])
// 创建一个指定类型的数组
const arr2 = new UArray<string>(5);
console.log(arr2.length); // 输出: 5
// 可以后续填充实际值
for (let i = 0; i < arr2.length; i++) {
arr2[i] = `Item ${i}`;
}
console.log(arr2); // 输出: ['Item 0', 'Item 1', 'Item 2', 'Item 3', 'Item 4']
3. 使用数组方法
由于 UArray 继承自原生 Array,因此可以使用所有标准的数组方法:
const arr = new UArray<number>(3);
// 使用数组方法
arr.fill(0); // 填充为 [0, 0, 0]
arr.push(4); // 添加元素,变为 [0, 0, 0, 4]
arr.map(item => item * 2); // 返回新数组 [0, 0, 0, 8]
注意事项
- 创建的数组元素初始值为
null,而不是undefined

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 3918
赞赏 0
下载 10752581
赞赏 1798
赞赏
京公网安备:11010802035340号