更新记录

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]

注意事项

  1. 创建的数组元素初始值为 null,而不是 undefined

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。