听译
登录

主页

<<上一页
uniappx
2024年8月9日 02:47:14

Map Map 对象保存键值对。任何值(对象或者基本类型)都可以作为一个键或一个值。 注意:请勿使用下标访问或设置map的键值对,此用法虽然在uts转为kotlin时可用,但是并不跨端 const map = new Map<string, string>() map['key1'] = 'value1' // 不跨端的用法 map.set('key1', 'value1') // 跨端用法 console.log(map['key1']) // 不跨端的用法 console.log(map.get('key1')) // 跨端用法 复制代码 Constructor() 返回值 类型 描述 Map<any, any> Map 对象。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - Constructor(entries?) 参数 名称 类型 必填 默认值 兼容性 描述 entries readonly (readonly \[K, V])[]| null 否 - - 元素为键值对的数组,eg: [[key1, value1], [key2, value2]] 返回值 类型 描述 Map<K, V> Map 对象。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 实例属性 size 返回值 Map 对象的成员数量。 const map1 = new Map<string,string>(); map1.set('a', 'alpha'); map1.set('b', 'beta'); map1.set('g', 'gamma'); console.log(map1.size); // expected output: 3 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 实例方法 clear() 移除 Map 对象中的所有元素。 返回值 类型 void const map1 = new Map<string,string>(); map1.set('bar', 'baz'); map1.set(1, 'foo'); console.log(map1.size); // expected output: 2 map1.clear(); console.log(map1.size); // expected output: 0 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - delete(key) 用于移除 Map 对象中指定的元素。 参数 名称 类型 必填 默认值 兼容性 描述 key K 是 - - 要从 Map 对象中删除的元素的键。 返回值 类型 描述 boolean 如果 Map 对象中的元素存在并已被移除,则为 true;如果该元素不存在,则为 false。 const map1 = new Map<string,string>(); map1.set('bar', 'foo'); console.log(map1.delete('bar')); // expected result: true // (true indicates successful removal) console.log(map1.has('bar')); // expected result: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - forEach(callbackfn, thisArg?) 按照插入顺序依次对 Map 中每个键/值对执行一次给定的函数。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: any, key: any, map: Map<K, V>) => void 是 - - Map 中每个元素所要执行的函数。它具有如下的参数: value: 每个迭代的值。 key: 每个迭代的键。 map: 正在迭代的 Map。 thisArg any 否 - - 在 callbackfn 执行中使用的 this 的值。 Map<K, V> 的属性值 名称 类型 必备 默认值 兼容性 描述 size number 是 - Map<K, V> 的方法 clear() : void; 移除 Map 对象中的所有元素。 clear 兼容性 Web Android iOS 4.0 3.9 4.11 delete(key : K) : boolean; 用于移除 Map 对象中指定的元素。 delete 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 key any 是 - - 要从 Map 对象中删除的元素的键。 返回值 类型 描述 boolean 如果 Map 对象中的元素存在并已被移除,则为 true;如果该元素不存在,则为 false。 forEach(callbackfn : (value : V, key : K, map : Map<K, V>) => void, thisArg ?: any) : void; 按照插入顺序依次对 Map 中每个键/值对执行一次给定的函数。 forEach 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: any, key: any, map: Map<K, V>) => void 是 - - Map 中每个元素所要执行的函数。它具有如下的参数: value: 每个迭代的值。 key: 每个迭代的键。 map: 正在迭代的 Map。 thisArg any 否 - - 在 callbackfn 执行中使用的 this 的值。 get(key : K) : V | null; 从 Map 对象返回指定的元素。如果与所提供的键相关联的值是一个对象,那么你将获得该对象的引用,对该对象所做的任何更改都会有效地在 Map 对象中修改它。 get 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 key any 是 - - 从 Map 对象返回的元素的键。 返回值 类型 描述 必备 any 与指定键相关联的元素,如果键在 Map 对象中找不到,则返回 null。 否 has(key : K) : boolean; 返回一个布尔值,指示具有指定键的元素是否存在。 has 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 key any 是 - - 用于测试 Map 对象中是否存在的元素的键。 返回值 类型 描述 boolean 如果 Map 对象中存在具有指定键的元素,则返回 true;否则返回 false。 set(key : K, value : V) : this; 为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。 set 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 key any 是 - - 要添加到 Map 对象的元素的键。该值可以是任何数据类型(任何原始值或任何类型的对象)。 value any 是 - - 要添加到 Map 对象的元素的值。该值可以是任何数据类型(任何原始值或任何类型的对象)。 返回值 类型 描述 any 排序后的类型化数组。 返回值 类型 void 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - let mapObj = new Map<string,any>() mapObj.put("name","zhangsan") mapObj.put("age",12) // 需要特别注意迭代方法的第一个参数是value.第二个是key. mapObj.forEach(function(value:any,key:string){ console.log(key) console.log(value) }) 复制代码 get(key) 从 Map 对象返回指定的元素。如果与所提供的键相关联的值是一个对象,那么你将获得该对象的引用,对该对象所做的任何更改都会有效地在 Map 对象中修改它。 参数 名称 类型 必填 默认值 兼容性 描述 key K 是 - - 从 Map 对象返回的元素的键。 返回值 类型 描述 V | null 与指定键相关联的元素,如果键在 Map 对象中找不到,则返回 null。 const map1 = new Map<string,string>(); map1.set('bar', 'foo'); console.log(map1.get('bar')); // expected output: "foo" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - has(key) 返回一个布尔值,指示具有指定键的元素是否存在。 参数 名称 类型 必填 默认值 兼容性 描述 key K 是 - - 用于测试 Map 对象中是否存在的元素的键。 返回值 类型 描述 boolean 如果 Map 对象中存在具有指定键的元素,则返回 true;否则返回 false。 const map1 = new Map<string,string>(); map1.set('bar', 'foo'); console.log(map1.has('bar')); // expected output: true console.log(map1.has('baz')); // expected output: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - set(key, value) 为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。 参数 名称 类型 必填 默认值 兼容性 描述 key K 是 - - 要添加到 Map 对象的元素的键。该值可以是任何数据类型(任何原始值或任何类型的对象)。 value V 是 - - 要添加到 Map 对象的元素的值。该值可以是任何数据类型(任何原始值或任何类型的对象)。 返回值 类型 描述 this Map 对象 const map1 = new Map<string,string>(); map1.set('bar', 'foo'); console.log(map1.get('bar')); // expected output: "foo" console.log(map1.get('baz')); // expected output: null 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 注意:由于Map的key是唯一的,给同一个key多次set值时,会用新值替换老值。 const map1: Map<string,string> = new Map(); //定义一个map,key为string类型,value也是string类型 map1.set('key1', "abc"); map1.set('key1', "def"); console.log(map1.get('key1')) //返回 def 复制代码 常见操作 创建map let map = new Map<string,any>() map.set("name","zhangsan") map.set("age",12) //Map(2) {"name":"zhangsan","age":12} console.log(map) 复制代码 通过key访问map元素 let map = new Map<string,any>() map.set("name","zhangsan") map.set("age",12) let nameVal = map['name'] //zhangsan console.log(nameVal) 复制代码 遍历map let map = new Map<string,any | null>() map.set("name","zhangsan") map.set("age",12) // 遍历函数 1 map.forEach(function(value:any | null){ console.log(value) }) // 遍历函数 2 map.forEach(function(value:any | null,key:string){ console.log(key) console.log(value) }) // 遍历函数 3 map.forEach(function(value:any | null,key:string,map: Map<string,any | null>){ console.log(value) console.log(key) console.log(map) }) 复制代码 参见 相关 Bug Bug & Tips 目前 Error 类型编译到 kotlin 为 io.dcloud.uts.Map


uniappx
2024年8月9日 02:46:59

Set Set 对象是值的集合,你可以按照插入的顺序迭代它的元素。Set 中的元素只会出现一次,即 Set 中的元素是唯一的。 实例属性 size 返回 Set 对象中(唯一的)元素的个数。 返回值 返回 Set 对象中(唯一的)元素的个数。 const set1 = new Set<Any>(); set1.add(42); set1.add('forty two'); set1.add('forty two'); console.log(set1.size); // expected output: 2 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 实例方法 add(value) 如果 Set 对象中没有具有相同值的元素,则 add() 方法将插入一个具有指定值的新元素到 Set 对象中。 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要添加到 Set 对象的元素的值。 返回值 类型 描述 this Set 对象本身。 const set1 = new Set<number>(); set1.add(42); set1.add(42); set1.add(13); set1.forEach((item)=>{ console.log(item); // expected output: 42 // expected output: 13 }) 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - clear() 移除 Set 对象中所有元素。 返回值 类型 void const set1 = new Set<any>(); set1.add(1); set1.add('foo'); console.log(set1.size); // expected output: 2 set1.clear(); console.log(set1.size); // expected output: 0 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - delete(value) 从 Set 对象中删除指定的值(如果该值在 Set 中)。 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要从 Set 中移除的值。 返回值 类型 描述 boolean 成功删除返回 true,否则返回 false。 const map1 = new Map<string,string>(); map1.set('bar', 'foo'); console.log(map1.delete('bar')); // expected result: true // (true indicates successful removal) console.log(map1.has('bar')); // expected result: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - forEach(callbackfn, thisArg?) 对 Set 对象中的每个值按插入顺序执行一次提供的函数。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: T, value2: T, set: Set<T>) => void 是 - - 为集合中每个元素执行的回调函数,该函数接收三个参数:value、key: Set 中正在处理的当前元素。因为 Set 中没有键,所以 value 会被共同传递给这两个参数。set: 调用 forEach() 的 Set 对象。 thisArg any 否 - - 值在执行 callbackFn 时作为 this 使用。 Set<T> 的属性值 名称 类型 必备 默认值 兼容性 描述 size number 是 - 返回 Set 对象中(唯一的)元素的个数。 Set<T> 的方法 add(value : T) : this; 如果 Set 对象中没有具有相同值的元素,则 add() 方法将插入一个具有指定值的新元素到 Set 对象中。 add 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要添加到 Set 对象的元素的值。 返回值 类型 描述 any 排序后的类型化数组。 clear() : void; 移除 Set 对象中所有元素。 clear 兼容性 Web Android iOS 4.0 3.9 4.11 delete(value : T) : boolean; 从 Set 对象中删除指定的值(如果该值在 Set 中)。 delete 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要从 Set 中移除的值。 返回值 类型 描述 boolean 成功删除返回 true,否则返回 false。 forEach(callbackfn : (value : T, value2 : T, set : Set<T>) => void, thisArg ?: any) : void; 对 Set 对象中的每个值按插入顺序执行一次提供的函数。 forEach 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: T, value2: T, set: Set<T>) => void 是 - - 为集合中每个元素执行的回调函数,该函数接收三个参数:value、key: Set 中正在处理的当前元素。因为 Set 中没有键,所以 value 会被共同传递给这两个参数。set: 调用 forEach() 的 Set 对象。 thisArg any 否 - - 值在执行 callbackFn 时作为 this 使用。 has(value : T) : boolean; 返回一个布尔值来指示对应的值是否存在于 Set 对象中。 has 兼容性 Web Android iOS 4.0 3.9 4.11 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要测试是否存在于 Set 对象中的值。 返回值 类型 描述 boolean 如果 Set 对象中存在具有指定值的元素,则返回 true;否则返回 false。 返回值 类型 void const set1 = new Set<number>([42, 13]); set1.forEach((item)=>{ console.log(item); // expected output: 42 // expected output: 13 }) 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - has(value) 返回一个布尔值来指示对应的值是否存在于 Set 对象中。 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 要测试是否存在于 Set 对象中的值。 返回值 类型 描述 boolean 如果 Set 对象中存在具有指定值的元素,则返回 true;否则返回 false。 const set1 = new Set<number>([1, 2, 3, 4, 5]); console.log(set1.has(1)); // expected output: true console.log(set1.has(5)); // expected output: true console.log(set1.has(6)); // expected output: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - . 参见 相关 Bug Bug & Tips 目前 Set 类型编译到 kotlin 为 io.dcloud.uts.Set


uniappx
2024年8月9日 02:46:34

Array Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。 构造函数 new <T>(...items : T[]) : T[] 参数 名称 类型 必填 默认值 兼容性 描述 items T[] 是 - - 添加到 arr 开头的元素。 返回值 类型 T[] 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - /$string> 用法1:创建数组时需要指定类型,即:Array<string> / let arrA = new Array<string>() / 用法2:创建数组时根据初始元素,推导出类型为:Array<number> / let arrB = new Array(32,87,32) 复制代码 注意事项 与JS中的Array 不同,UTS不支持的指定长度初始化Array的写法 let arr = new Array(10) 复制代码 上面的代码在不同的平台的表现有差异: web平台 一个长度为10的数组,每一个元素都是 undefined Android/ios平台 一个长度为1的数组,其元素为 数字10 实例属性 length length 是 Array 的实例属性,表示该数组中元素的个数。该值是一个无符号 32 位整数,并且其数值总是大于数组最大索引。 const clothing = ['shoes', 'shirts', 'socks', 'sweaters']; console.log(clothing.length); // expected output: 4 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 边界情况说明: 在不同平台上,数组的长度限制不同,超出限制会导致相应的错误或异常 编译至 JavaScript 平台时,最大长度为 2^32 - 1,超出限制会报错:Invalid array length。 编译至 Kotlin 平台时,最大长度受系统内存的限制,超出限制报错:java.lang.OutOfMemoryError: Failed to allocate a allocation until OOM。 编译至 Swift 平台时,最大长度也受系统内存的限制,目前超出限制没有返回信息。 实例方法 find(predicate, thisArg?) find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 null。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number, obj: Array<T>) => boolean 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值来表示已经找到了匹配的元素。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 描述 S | null 数组中第一个满足所提供测试函数的元素的值,否则返回 null const array1 = [5, 12, 8, 130, 44]; const found = array1.find((element:number):boolean => element > 10); console.log(found); // expected output: 12 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - findIndex(predicate, thisArg?) findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number, obj: Array<T>) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示已找到匹配元素,否则返回一个假值。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 描述 number 数组中第一个满足测试条件的元素的索引。否则返回 -1。 const array1 = [5, 12, 8, 130, 44]; const isLargeNumber = (element:number):boolean => element > 13; console.log(array1.findIndex(isLargeNumber)); // expected output: 3 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - fill(value, start?, end?) fill() 方法用一个固定值填充一个数组中从起始索引(默认为 0)到终止索引(默认为 array.length)内的全部元素。它返回修改后的数组。 参数 名称 类型 必填 默认值 兼容性 描述 value T 是 - - 用来填充数组元素的值。注意所有数组中的元素都将是这个确定的值:如果 value 是个对象,那么数组的每一项都会引用这个元素。 start number 否 - - 基于零的索引,从此开始填充,转换为整数。 end number 否 - - 基于零的索引,在此结束填充,转换为整数。fill() 填充到但不包含 end 索引。 返回值 类型 this const array1 = [1, 2, 3, 4]; // fill with 0 from position 2 until position 4 console.log(array1.fill(0, 2, 4)); // expected output: [1, 2, 0, 0] // fill with 5 from position 1 console.log(array1.fill(5, 1)); // expected output: [1, 5, 5, 5] console.log(array1.fill(6)); // expected output: [6, 6, 6, 6] 复制代码 需要注意的是,截止HBuilder 4.22 部分平台尚不支持根据元素个数构造Array的写法 所以下面的代码在 部分平台可能不符合预期 new Array(20).fill(0) 复制代码 可以使用下面的代码替代 let b = Array<Number>() for(let i = 0; i < 20; i++){ b.add(0) } 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - copyWithin(target, start?, end?) copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。 参数 名称 类型 必填 默认值 兼容性 描述 target number 是 - - 序列开始替换的目标位置,以 0 为起始的下标表示,且将被转换为整数 start number 否 - - 要复制的元素序列的起始位置,以 0 为起始的下标表示,且将被转换为整数 end number 否 - - 要复制的元素序列的结束位置,以 0 为起始的下标表示,且将被转换为整数。copyWithin 将会拷贝到该位置,但不包括 end 这个位置的元素。 返回值 类型 this const array1 = ['a', 'b', 'c', 'd', 'e']; // copy to index 0 the element at index 3 console.log(array1.copyWithin(0, 3, 4)); // expected output: Array ["d", "b", "c", "d", "e"] // copy to index 1 all elements from index 3 to the end console.log(array1.copyWithin(1, 3)); // expected output: Array ["d", "d", "e", "d", "e"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - pop() pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。 返回值 类型 T | null const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato']; console.log(plants.pop()); // expected output: "tomato" console.log(plants); // expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"] plants.pop(); console.log(plants); // expected output: Array ["broccoli", "cauliflower", "cabbage"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - push(...items) push() 方法将指定的元素添加到数组的末尾,并返回新的数组长度。 参数 名称 类型 必填 默认值 兼容性 描述 items T[] 是 - - 添加到数组末尾的元素。 返回值 类型 描述 number 调用方法的对象的新 length 属性。 const animals = ['pigs', 'goats', 'sheep']; const count = animals.push('cows'); console.log(count); // expected output: 4 console.log(animals); // expected output: Array ["pigs", "goats", "sheep", "cows"] animals.push('chickens', 'cats', 'dogs'); console.log(animals); // expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - concat(...items) concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 参数 名称 类型 必填 默认值 兼容性 描述 items ConcatArray<T>[] 是 - - 数组和/或值,将被合并到一个新的数组中。如果省略了所有 valueN 参数,则 concat 会返回调用此方法的现存数组的一个浅拷贝。详情请参阅下文描述。 返回值 类型 描述 T[] 新的 Array 实例。 const array1 = ['a', 'b', 'c']; const array2 = ['d', 'e', 'f']; const array3 = array1.concat(array2); console.log(array3); // expected output: Array ["a", "b", "c", "d", "e", "f"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - concat(...items) concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 参数 名称 类型 必填 默认值 兼容性 描述 items (T | ConcatArray<T>)[] 是 - - 数组和/或值,将被合并到一个新的数组中。如果省略了所有 valueN 参数,则 concat 会返回调用此方法的现存数组的一个浅拷贝。详情请参阅下文描述。 返回值 类型 描述 T[] 新的 Array 实例。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - join(separator?) join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。 参数 名称 类型 必填 默认值 兼容性 描述 separator string 否 - - 指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串。如果省略,数组元素用逗号(,)分隔。如果 separator 是空字符串(""),则所有元素之间都没有任何字符。 返回值 类型 描述 string 一个所有数组元素连接的字符串。如果 arr.length 为 0,则返回空字符串。 const elements = ['Fire', 'Air', 'Water']; console.log(elements.join()); // expected output: "Fire,Air,Water" console.log(elements.join('')); // expected output: "FireAirWater" console.log(elements.join('-')); // expected output: "Fire-Air-Water" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app - 3.9 4.11 √ √ - UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - reverse() reverse() 方法就地反转数组中的元素,并返回同一数组的引用。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。换句话说,数组中的元素顺序将被翻转,变为与之前相反的方向。 返回值 类型 描述 T[] 原始数组反转后的引用。注意,数组是就地反转的,并且没有复制。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - shift() shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。 返回值 类型 描述 T | null 从数组中删除的元素;如果数组为空则返回 null。 const array1 = [1, 2, 3]; const firstElement = array1.shift(); console.log(array1); // expected output: Array [2, 3] console.log(firstElement); // expected output: 1 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - slice(start?, end?) slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝(包括 start,不包括 end),其中 start 和 end 代表了数组元素的索引。原始数组不会被改变。 参数 名称 类型 必填 默认值 兼容性 描述 start number 否 - - 提取起始处的索引(从 0 开始),会转换为整数。 end number 否 - - 提取终止处的索引(从 0 开始),会转换为整数。slice() 会提取到但不包括 end 的位置。 返回值 类型 T[] const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; console.log(animals.slice(2)); // expected output: Array ["camel", "duck", "elephant"] console.log(animals.slice(2, 4)); // expected output: Array ["camel", "duck"] console.log(animals.slice(1, 5)); // expected output: Array ["bison", "camel", "duck", "elephant"] console.log(animals.slice(-2)); // expected output: Array ["duck", "elephant"] console.log(animals.slice(2, -1)); // expected output: Array ["camel", "duck"] console.log(animals.slice()); // expected output: Array ["ant", "bison", "camel", "duck", "elephant"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - sort(compareFn?) sort() 方法就地对数组的元素进行排序,并返回对相同数组的引用。默认排序是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序。 参数 名称 类型 必填 默认值 兼容性 描述 compareFn (a: T, b: T) => number 否 - - 定义排序顺序的函数。返回值应该是一个数字,其正负性表示两个元素的相对顺序。该函数使用以下参数调用: a:第一个用于比较的元素。不会是 null。 b:第二个用于比较的元素。不会是 null。 如果省略该函数,数组元素会被转换为字符串,然后根据每个字符的 Unicode 码位值进行排序。 返回值 类型 描述 this 经过排序的原始数组的引用。注意数组是就地排序的,不会进行复制。 const array2 = [5, 1, 4, 2, 3]; array2.sort((a: number, b: number):number => a - b); // expect(array2).toEqual([1, 2, 3, 4, 5]); 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 平台差异性 在android平台,一定不能忽略两个对比元素相等的场景,否则可能会出现java.lang.IllegalArgumentException: Comparison method violates its general contract!‌ a.sort((a, b) : number => { // 这里的判断不能省略 if(a.compareTo(b) == 0){ return 0 } return a - b }) 复制代码 splice(start, deleteCount, ...items) splice() 方法通过移除或者替换已存在的元素和/或添加新元素就地改变一个数组的内容。 参数 名称 类型 必填 默认值 兼容性 描述 start number 是 - - 从 0 开始计算的索引,表示要开始改变数组的位置,它会被转换成整数。 deleteCount number 否 - - 一个整数,表示数组中要从 start 开始删除的元素数量。 返回值 类型 描述 T[] 一个包含了删除的元素的数组。 const months = ['Jan', 'March', 'April', 'June']; months.splice(1, 0, 'Feb'); // inserts at index 1 console.log(months); // expected output: Array ["Jan", "Feb", "March", "April", "June"] months.splice(4, 1, 'May'); // replaces 1 element at index 4 console.log(months); // expected output: Array ["Jan", "Feb", "March", "April", "May"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 x √ x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - unshift(...items) unshift() 方法将指定元素添加到数组的开头,并返回数组的新长度。 参数 名称 类型 必填 默认值 兼容性 描述 items T[] 是 - - 添加到 arr 开头的元素。 返回值 类型 number const array1 = [1, 2, 3]; console.log(array1.unshift(4, 5)); // expected output: 5 console.log(array1); // expected output: Array [4, 5, 1, 2, 3] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - indexOf(searchElement, fromIndex?) indexOf() 方法返回数组中第一次出现给定元素的下标,如果不存在则返回 -1。 参数 名称 类型 必填 默认值 兼容性 描述 searchElement T 是 - - 数组中要查找的元素。 fromIndex number 否 - - 开始搜索的索引(从零开始),会转换为整数。 返回值 类型 number const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']; console.log(beasts.indexOf('bison')); // expected output: 1 // start from index 2 console.log(beasts.indexOf('bison', 2)); // expected output: 4 console.log(beasts.indexOf('giraffe')); // expected output: -1 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - lastIndexOf(searchElement, fromIndex?) lastIndexOf() 方法返回数组中给定元素最后一次出现的索引,如果不存在则返回 -1。该方法从 fromIndex 开始向前搜索数组。 参数 名称 类型 必填 默认值 兼容性 描述 searchElement T 是 - - 被查找的元素。 fromIndex number 否 - - 以 0 起始的索引,表明反向搜索的起始位置,会被转换为整数。 返回值 类型 number const animals = ['Dodo', 'Tiger', 'Penguin', 'Dodo']; console.log(animals.lastIndexOf('Dodo')); // expected output: 3 console.log(animals.lastIndexOf('Tiger')); // expected output: 1 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - every(predicate, thisArg?) every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index?: number, array?: Array<T>) => boolean 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 array:调用了 every() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 this is S[] const isBelowThreshold = (currentValue:number):boolean => currentValue < 40; const array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold)); // expected output: true 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 x x x x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - every(predicate, thisArg?)1 every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number, array: Array<T>) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 array:调用了 every() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 boolean 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - every(predicate, thisArg?)2 every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 boolean 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - every(predicate, thisArg?)3 every() 方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 boolean 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - some(predicate, thisArg?) some() 方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number, array: Array<T>) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 array:调用了 some() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 描述 boolean 如果回调函数对数组中至少一个元素返回一个真值,则返回 true。否则返回 false。 const array = [1, 2, 3, 4, 5]; // checks whether an element is even const even = (element:number):boolean=> element % 2 == 0; console.log(array.some(even)); // expected output: true 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - some(predicate, thisArg?)1 some() 方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index: number) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 描述 boolean 如果回调函数对数组中至少一个元素返回一个真值,则返回 true。否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - some(predicate, thisArg?)_2 some() 方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T) => any 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以指示元素通过测试,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 描述 boolean 如果回调函数对数组中至少一个元素返回一个真值,则返回 true。否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - forEach(callbackfn, thisArg?) forEach() 方法对数组的每个元素执行一次给定的函数。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: T, index: number, array: Array<T>) => void 是 - - 为数组中每个元素执行的函数。并会丢弃它的返回值。该函数被调用时将传入以下参数: value:数组中正在处理的当前元素。 index:数组中正在处理的当前元素的索引。 array:调用了 forEach() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值。 返回值 类型 void const array1 = ['a', 'b', 'c']; array1.forEach(element => console.log(element)); // expected output: "a" // expected output: "b" // expected output: "c" 复制代码 特别注意: 不可在 forEach 的 callbackFn 里添加或者删除原数组元素,此行为是危险的,在 Android 平台会造成闪退,在 iOS 平台会造成行为不符合预期。如果想实现该效果,请用 while 循环。 const array1 = ['a', 'b', 'c']; array1.forEach(element => { console.log(element) array1.pop() // 此行为在 Android 平台会造成闪退,在 iOS 平台会输出 'a', 'b', 'c', 而 JS 会输出 'a', 'b' }); // 如果想让上述行为正常运行,可以用 while 循环实现: let array1 = ['a', 'b', 'c']; let index = 0; while (index < array1.length) { console.log(array1[index]); array1.pop(); index += 1; } 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - map(callbackfn, thisArg?) map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (value: T, index: number, array: Array<T>) => any 是 - - 为数组中的每个元素执行的函数。它的返回值作为一个元素被添加为新数组中。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 array:调用了 map() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 U[] const array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map((x:number):number => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - filter(predicate, thisArg?) filter() 方法创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。 参数 名称 类型 必填 默认值 兼容性 描述 predicate (value: T, index?: number, array?: Array<T>) => boolean 是 - - 为数组中的每个元素执行的函数。它应该返回一个真值以将元素保留在结果数组中,否则返回一个假值。该函数被调用时将传入以下参数: value:数组中当前正在处理的元素。 index:正在处理的元素在数组中的索引。 array:调用了 filter() 的数组本身。 thisArg any 否 - - 执行 callbackFn 时用作 this 的值 返回值 类型 S[] const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present']; const result = words.filter((word:string):boolean => word.length > 6); console.log(result); // expected output: Array ["exuberant", "destruction", "present"] 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 x x x x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - reduce(callbackfn) reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (previousValue: T, currentValue: T, currentIndex: number, array: Array<T>) => T 是 - - 为数组中每个元素执行的函数。其返回值将作为下一次调用 callbackFn 时的 accumulator 参数。对于最后一次调用,返回值将作为 reduce() 的返回值。该函数被调用时将传入以下参数: previousValue:上一次调用 callbackFn 的结果。在第一次调用时,如果指定了 initialValue 则为指定的值,否则为 array[0] 的值。 currentValue:当前元素的值。在第一次调用时,如果指定了 initialValue,则为 array[0] 的值,否则为 array[1] currentIndex:currentValue 在数组中的索引位置。在第一次调用时,如果指定了 initialValue 则为 0,否则为 1 array:调用了 reduce() 的数组本身。 返回值 类型 T const array1 = [1, 2, 3, 4]; // 0 + 1 + 2 + 3 + 4 const initialValue = 0; const sumWithInitial = array1.reduce( (previousValue:number, currentValue:number):number => previousValue + currentValue, initialValue ); console.log(sumWithInitial); // expected output: 10 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - reduceRight(callbackfn) reduceRight() 方法对累加器(accumulator)和数组的每个值(按从右到左的顺序)应用一个函数,并使其成为单个值。 参数 名称 类型 必填 默认值 兼容性 描述 callbackfn (previousValue: T, currentValue: T, currentIndex: number, array: Array<T>) => T 是 - - 为数组中的每个元素执行的函数。其返回值将作为下一次调用 callbackFn 时的 accumulator 参数。对于最后一次调用,返回值将成为 reduceRight() 的返回值。该函数被调用时将传入以下参数: previousValue:上一次调用 callbackFn 的结果。在第一次调用时,如果指定了 initialValue 则为指定的值,否则为数组最后一个元素的值。 currentValue:数组中当前正在处理的元素。 currentIndex:正在处理的元素在数组中的索引。 array:调用了 reduceRight() 的数组本身。 返回值 类型 T 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - isArray(arg) Array.isArray() 静态方法用于确定传递的值是否是一个 Array。 参数 名称 类型 必填 默认值 兼容性 描述 arg any 是 - - 需要检测的值。 返回值 类型 描述 arg is any[] 如果 value 是 Array,则为 true;否则为 false。如果 value 是 TypedArray 实例,则总是返回 false。 console.log(Array.isArray([1, 3, 5])); // Expected output: true console.log(Array.isArray('[]')); // Expected output: false console.log(Array.isArray(new Array(5))); // Expected output: true console.log(Array.isArray(new Int16Array([15, 33]))); // Expected output: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - includes(searchElement, fromIndex?) includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。 参数 名称 类型 必填 默认值 兼容性 描述 searchElement any 是 - - 需要查找的值。 fromIndex number 否 - - 可选。开始搜索的索引(从零开始),会转换为整数。 返回值 类型 描述 boolean 一个布尔值,如果在数组中(或者在 fromIndex 所指示的数组部分中,如果指定 fromIndex 的话)找到 searchElement 值,则该值为 true。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toKotlinList() toKotlinList() 将当前的Array对象转换为 kotlin 中对应的List对象 返回值 类型 kotlin.collections.List<any> 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app - 3.9 x 3.9 x - UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 参见 相关 Bug Android 平台方法 目前 Array 类型编译到 kotlin 为 io.dcloud.uts.UTSArray, 该类继承自 java.util.ArrayList,所有java /kotlin 为其提供的扩展函数(如:toTypedArray 等),均可以正常调用。 let utsArray = ["1",2,3.0] // UTSArray 分别转换为 Java Array / Kotlin Array let javaArray = utsArray.toTypedArray(); let kotlinArray = utsArray.toKotlinList() // 从Java Array 转换为 UTSArray let convertArrayFromJava = Array.fromNative(javaArray); // 从Kotlin Array 转换为 UTSArray let convertArrayFromKotlin = Array.fromNative(kotlinArray); 复制代码 更多平台专属Array 参考文档 常见操作 创建数组 const fruits = ['Apple', 'Banana'] console.log(fruits.length) 复制代码 通过索引访问数组元素 const first = fruits[0] // Apple const last = fruits[fruits.length - 1] // Banana 复制代码 遍历数组 fruits.forEach(function(item, index, array) { console.log(item, index) }) // Apple 0 // Banana 1 复制代码 注意:数组遍历不推荐使用 for in 语句,因为在 ts 中 for in 遍历的是数组的下标,而在 Swift 和 Kottlin 中遍历的是数组的元素,存在行为不一致。 添加元素到数组的末尾 const newLength = fruits.push('Orange') // ["Apple", "Banana", "Orange"] 复制代码 删除数组末尾的元素 const last = fruits.pop() // remove Orange (from the end) // ["Apple", "Banana"] 复制代码 删除数组头部元素 const first = fruits.shift() // remove Apple from the front // ["Banana"] 复制代码 添加元素到数组的头部 const newLength = fruits.unshift('Strawberry') // add to the front // ["Strawberry", "Banana"] 复制代码 找出某个元素在数组中的索引 fruits.push('Mango') // ["Strawberry", "Banana", "Mango"] const pos = fruits.indexOf('Banana') // 1 复制代码 通过索引删除某个元素 const removedItem = fruits.splice(pos, 1) // this is how to remove an item // ["Strawberry", "Mango"] 复制代码 从一个索引位置删除多个元素 const vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot'] console.log(vegetables) // ["Cabbage", "Turnip", "Radish", "Carrot"] const pos = 1 const n = 2 const removedItems = vegetables.splice(pos, n) // this is how to remove items, n defines the number of items to be removed, // starting at the index position specified by pos and progressing toward the end of array. console.log(vegetables) // ["Cabbage", "Carrot"] (the original array is changed) console.log(removedItems) // ["Turnip", "Radish"] 复制代码 复制一个数组 const shallowCopy = fruits.slice() // this is how to make a copy // ["Strawberry", "Mango"] 复制代码 访问数组元素 数组的索引是从 0 开始的,第一个元素的索引为 0,最后一个元素的索引等于该数组的 长度 减 1。 如果指定的索引是一个无效值,将会抛出 IndexOutOfBoundsException 异常 下面的写法是错误的,运行时会抛出 SyntaxError 异常,而原因则是使用了非法的属性名: console.log(arr.0) // a syntax error


uniappx
2024年8月9日 02:46:11

String String 全局对象是一个用于字符串或一个字符序列的构造函数。 字符串字面量采取以下形式: 'string text' "string text" "中文/汉语" "español" "English " "हिन्दी" "العربية" "português" "বাংলা" "русский" "日本語" "ਪੰਜਾਬੀ" "한국어" 复制代码 实例属性 length 返回字符串的 UTF-16 码元长度。 const x = "Mozilla"; const empty = ""; console.log("Mozilla is " + x.length + " code units long"); / "Mozilla is 7 code units long" / console.log("The empty string is has a length of " + empty.length); / "The empty string is has a length of 0" / 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 实例方法 includes(searchString, position?) 如果 searchString 作为此对象转换为 String 的结果的子字符串出现在大于或等于position的一个或多个位置,则返回 true;否则,返回 false。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要在 str 中搜索的字符串。不能是正则表达式。 position number 否 - - 在字符串中开始搜索 searchString 的位置。(默认为 0。) 返回值 类型 描述 boolean 如果在给定的字符串中找到了要搜索的字符串(包括 searchString 为空字符串的情况),则返回 true,否则返回 false。 const str = 'To be, or not to be, that is the question.'; console.log(str.includes('To be')); // true console.log(str.includes('question')); // true console.log(str.includes('nonexistent')); // false console.log(str.includes('To be', 1)); // false console.log(str.includes('TO BE')); // false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - endsWith(searchString, endPosition?) endsWith() 方法用于判断一个字符串是否以指定字符串结尾,如果是则返回 true,否则返回 false。该方法区分大小写。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的作为结尾的字符串,不能是正则表达式。所有非正则表达式的值都会被强制转换为字符串。 endPosition number 否 - - 可选,预期找到 searchString 的末尾位置(即 searchString 最后一个字符的索引加 1)。默认为 str.length。 返回值 类型 描述 boolean 如果被检索字符串的末尾出现了指定的字符串(包括 searchString 为空字符串的情况),则返回 true;否则返回 false。 const str1 = 'Cats are the best!'; console.log(str1.endsWith('best!')); // expected output: true console.log(str1.endsWith('best', 17)); // expected output: true const str2 = 'Is this a question?'; console.log(str2.endsWith('question')); // expected output: false 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - repeat(count) repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。 参数 名称 类型 必填 默认值 兼容性 描述 count number 是 - - 介于 0 和 +Infinity 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。 返回值 类型 描述 string 包含指定字符串的指定数量副本的新字符串。 "abc".repeat(0) // "" "abc".repeat(1) // "abc" "abc".repeat(2) // "abcabc" "abc".repeat(3.5) // "abcabcabc" 参数 count 将会被自动转换成整数。 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - startsWith(searchString, position?) startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。这个方法区分大小写。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的子字符串。 position number 否 - - 在 str 中搜索 searchString 的开始位置,默认值为 0。 返回值 类型 描述 boolean 如果在字符串的开头找到了给定的字符则返回 true;否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - at(index) 方法接受一个整数值,并返回一个新的 String,该字符串由位于指定偏移量处的单个 UTF-16 码元组成 参数 名称 类型 必填 默认值 兼容性 描述 index number 是 - - 字符指定偏移量处,允许正整数和负整数,负整数从字符串中的最后一个字符开始倒数。 返回值 类型 string | null const sentence = 'The quick brown fox jumps over the lazy dog.'; let index = 5; console.log(`Using an index of ${index} the character returned is ${sentence.at(index)}`); // expected output: "Using an index of 5 the character returned is u" index = -4; console.log(`Using an index of ${index} the character returned is ${sentence.at(index)}`); // expected output: "Using an index of -4 the character returned is d" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - charAt(pos) 返回一个由给定索引处的单个 UTF-16 码元构成的新字符串。 参数 名称 类型 必填 默认值 兼容性 描述 pos number 是 - - 要返回的字符的索引,从零开始。 返回值 类型 描述 string 返回一个字符串,该字符串表示指定 index 处的字符(恰好是一个 UTF-16 码元)。如果 index 超出了 0 – str.length - 1 的范围,charAt() 将返回一个空字符串。 const anyString = "Brave new world"; console.log("The character at index 0 is '" + anyString.charAt(0) + "'"); // The character at index 0 is 'B' console.log("The character at index 1 is '" + anyString.charAt(1) + "'"); // The character at index 1 is 'r' console.log("The character at index 2 is '" + anyString.charAt(2) + "'"); // The character at index 2 is 'a' console.log("The character at index 3 is '" + anyString.charAt(3) + "'"); // The character at index 3 is 'v' console.log("The character at index 4 is '" + anyString.charAt(4) + "'"); // The character at index 4 is 'e' console.log("The character at index 999 is '" + anyString.charAt(999) + "'"); // The character at index 999 is '' 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - charCodeAt(index) 返回 0 到 65535 之间的整数,表示给定索引处的 UTF-16 代码单元 参数 名称 类型 必填 默认值 兼容性 描述 index number 是 - - 一个大于等于 0,小于字符串长度的整数。如果不是一个数值,则默认为 0。 返回值 类型 描述 number 指定 index 处字符的 UTF-16 代码单元值的一个数字;如果 index 超出范围,charCodeAt() 返回 NaN。 const sentence = 'The quick brown fox jumps over the lazy dog.'; const index = 4; console.log(`The character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(index)}`); // expected output: "The character code 113 is equal to q" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - fromCharCode(...codes : number[]):string 参数 名称 类型 必填 默认值 兼容性 描述 codes number[] 是 - - - 返回值 类型 string console.log(String.fromCharCode(189, 43, 190, 61)); // expected output: "½+¾=" console.log(String.fromCharCode(189, 165999, 190, 61)); // expected output: "½衯¾=" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app - 3.9 4.11 √ 3.9 - UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - concat(...strings) 将字符串参数连接到调用的字符串,并返回一个新的字符串。 参数 名称 类型 必填 默认值 兼容性 描述 strings string[] 是 - - T要连接到 str 的一个或多个字符串。 返回值 类型 描述 string 一个包含所提供的多个字符串文本组合的新字符串。 let hello = 'Hello, ' console.log(hello.concat('Kevin', '. Have a nice day.')) // Hello, Kevin. Have a nice day. 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - indexOf(searchString, position?) 在字符串中搜索指定子字符串,并返回其第一次出现的位置索引。它可以接受一个可选的参数指定搜索的起始位置,如果找到了指定的子字符串,则返回的位置索引大于或等于指定的数字。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的子字符串。 position number 否 - - 该方法返回指定子字符串在大于或等于 position 位置的第一次出现的索引,默认为 0。如果 position 大于调用字符串的长度,则该方法根本不搜索调用字符串。如果 position 小于零,该方法的行为就像 position 为 0 时一样。 返回值 类型 描述 number 查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1。 const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?'; const searchTerm = 'dog'; const indexOfFirst = paragraph.indexOf(searchTerm); console.log(`The index of the first "${searchTerm}" from the beginning is ${indexOfFirst}`); // expected output: "The index of the first "dog" from the beginning is 40" console.log(`The index of the 2nd "${searchTerm}" is ${paragraph.indexOf(searchTerm, (indexOfFirst + 1))}`); // expected output: "The index of the 2nd "dog" is 52" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - lastIndexOf(searchString, position?) 搜索该字符串并返回指定子字符串最后一次出现的索引。它可以接受一个可选的起始位置参数,并返回指定子字符串在小于或等于指定数字的索引中的最后一次出现的位置。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的子字符串。 position number 否 - - 该方法返回指定子字符串在小于或等于 position 的位置中的最后一次出现的索引,默认为 +Infinity。如果 position 大于调用字符串的长度,则该方法将搜索整个字符串。如果 position 小于 0,则行为与 0 相同,即该方法只在索引 0 处查找指定的子字符串。 返回值 类型 描述 number 如果找到了 searchString,则返回最后一次出现的索引,否则返回 -1。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - match(regexp : string | RegExp) : RegExpMatchArray | null; match() 方法检索字符串与正则表达式进行匹配的结果。 参数 名称 类型 必填 默认值 兼容性 描述 regexp string | RegExp 是 - - 一个正则表达式对象或者任何具有 Symbol.match 方法的对象。 返回值 类型 描述 RegExpMatchArray | null 一个 Array,其内容取决于是否存在全局(g)标志,如果没有匹配,则返回 null。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 x √ x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - replace(searchValue, replaceValue) 返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式。 参数 名称 类型 必填 默认值 兼容性 描述 searchValue string | RegExp 是 - - RegExp: 一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。string: 一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。 replaceValue string 是 - - 用于替换掉第一个参数在原字符串中的匹配部分的字符串。 返回值 类型 描述 string 一个部分或全部匹配由替代模式所取代的新的字符串。 const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?'; console.log(p.replace('dog', 'monkey')); // expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?" const regex = /Dog/i; console.log(p.replace(regex, 'ferret')); // expected output: "The quick brown fox jumps over the lazy ferret. If the dog reacted, was it really lazy?" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - replace(searchValue, replacer) 返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值是一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。 参数 名称 类型 必填 默认值 兼容性 描述 searchValue string | RegExp 是 - - RegExp: 一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。string: 一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。 replacer (substring: string, args?: Array<any>) => string 是 - - 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。在iOS中replacer的第二个参数是字符串数组而非可变参数。 返回值 类型 描述 string 一个部分或全部匹配由替代模式所取代的新的字符串。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - // 不包含捕捉组的示例 let a = "The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?" let b = a.replace(RegExp("fox"),function(match: string, offset: number, string: string):string{ console.log("match",match) console.log("offset",offset) console.log("string",string) return "cat" }) console.log("b:",b) // 包含一个捕获组的示例。注意,目前android仅支持最多五个捕获组 let a1 = "The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?" let b1 = a1.replace(RegExp("(fox)"),function(match: string,p1: string, offset: number, string: string):string{ console.log("match",match) console.log("p1",p1) console.log("offset",offset) console.log("string",string) return "cat" }) console.log("b1",b1) 复制代码 search(regexp) search() 方法执行正则表达式和 String 对象之间的一个搜索匹配。 参数 名称 类型 必填 默认值 兼容性 描述 regexp string | RegExp 是 - - 一个正则表达式(regular expression)对象。 返回值 类型 描述 number 如果匹配成功,则 search() 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。 const paragraph = 'The quick brown fox jumps over the lazy dog. If the dog barked, was it really lazy?'; // any character that is not a word character or whitespace const regex = /[^\w\s]/g; console.log(paragraph.search(regex)); // expected output: 43 console.log(paragraph[paragraph.search(regex)]); // expected output: "." 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - slice(start?, end?) slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。 参数 名称 类型 必填 默认值 兼容性 描述 start number 否 - - 可选。从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 strLength + beginIndex 看待,这里的strLength 是字符串的长度(例如,如果 beginIndex 是 -3 则看作是:strLength - 3) end number 否 - - 可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice() 会一直提取到字符串末尾。如果该参数为负数,则被看作是 strLength + endIndex,这里的 strLength 就是字符串的长度 (例如,如果 endIndex 是 -3,则是,strLength - 3)。 返回值 类型 描述 string 返回一个从原字符串中提取出来的新字符串 const str = 'The quick brown fox jumps over the lazy dog.'; console.log(str.slice(31)); // expected output: "the lazy dog." console.log(str.slice(4, 19)); // expected output: "quick brown fox" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - split(separator, limit?) split() 方法接受一个模式,通过搜索模式将字符串分割成一个有序的子串列表,将这些子串放入一个数组,并返回该数组。 参数 名称 类型 必填 默认值 兼容性 描述 separator string | RegExp 是 - - 描述每个分割应该发生在哪里的模式。 limit number 否 - - 一个非负整数,指定数组中包含的子字符串的数量限制。当提供此参数时,split 方法会在指定 separator 每次出现时分割该字符串,但在已经有 limit 个元素时停止分割。任何剩余的文本都不会包含在数组中。 返回值 类型 描述 string[] 在给定字符串中出现 separator 的每一个点上进行分割而成的字符串数组。 const str = 'The quick brown fox jumps over the lazy dog.'; const words = str.split(' '); console.log(words[3]); // expected output: "fox" const chars = str.split(''); console.log(chars[8]); // expected output: "k" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - substring(start, end?) 返回一个字符串在开始索引到结束索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。 参数 名称 类型 必填 默认值 兼容性 描述 start number 是 - - 要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。 end number 否 - - 可选。一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。 返回值 类型 描述 string 包含给定字符串的指定部分的新字符串。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - bug&tips 当前版本android平台 start 与 end 参数声明为Int, 需要将number 参数转换为int let a = 1 let b = 2 // 临时解决办法 "hello uts".substring(a.toInt(),b.toInt()) 复制代码 这个问题后续会修复 toLowerCase() toLowerCase() 会将调用该方法的字符串值转为小写形式,并返回。 返回值 类型 描述 string 一个新的字符串,表示转换为小写的调用字符串。 console.log('中文简体 zh-CN || zh-Hans'.toLowerCase()); // 中文简体 zh-cn || zh-hans ​console.log( "ALPHABET".toLowerCase() ); // "alphabet" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUpperCase() 将调用该方法的字符串转为大写形式并返回(如果调用该方法的值不是字符串类型会被强制转换)。 返回值 类型 描述 string 一个新的字符串,表示转换为大写的调用字符串。 const sentence = 'The quick brown fox jumps over the lazy dog.'; console.log(sentence.toUpperCase()); // expected output: "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG." 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - trim() 从字符串的两端清除空格,返回一个新的字符串,而不修改原始字符串。此上下文中的空格是指所有的空白字符(空格、tab、不换行空格等)以及所有行终止符字符(如 LF、CR 等)。 返回值 类型 描述 string 一个表示 str 去掉了开头和结尾的空白字符后的新字符串。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - padStart(targetLength, padString?) 用另一个字符串填充当前字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的开头开始的。 参数 名称 类型 必填 默认值 兼容性 描述 targetLength number 是 - - 当前 str 填充后的长度。如果该值小于或等于 str.length,则会直接返回当前 str。 padString string 否 - - 可选。用于填充当前 str 的字符串。如果 padString 太长,无法适应 targetLength,则会从末尾被截断。默认值为“ ”字符(U+0020)。 返回值 类型 描述 string 在开头填充 padString 直到达到给定的 targetLength 所形成的 String。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - const str1 = '5'; console.log(str1.padStart(2, '0')); // expected output: "05" 复制代码 padEnd(targetLength, padString?) 将当前字符串从末尾开始填充给定的字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的末尾开始的。 参数 名称 类型 必填 默认值 兼容性 描述 targetLength number 是 - - 当前 str 填充后的长度。如果该值小于或等于 str.length,则会直接返回当前 str。 padString string 否 - - 可选。用于填充当前 str 的字符串。如果 padString 太长,无法适应 targetLength,则会被截断。默认值为“ ”字符(U+0020)。 返回值 类型 描述 string 在开头填充 padString 直到达到给定的 targetLength 所形成的 String。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - const str1 = 'Breaded Mushrooms'; console.log(str1.padEnd(25, '.')); // expected output: "Breaded Mushrooms........" const str2 = '200'; console.log(str2.padEnd(5)); // expected output: "200 " 复制代码 includes(searchString, position?) 如果 searchString 作为此对象转换为 String 的结果的子字符串出现在大于或等于position的一个或多个位置,则返回 true;否则,返回 false。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要在 str 中搜索的字符串。不能是正则表达式。 position number 否 - - 在字符串中开始搜索 searchString 的位置。(默认为 0。) 返回值 类型 描述 boolean 如果在给定的字符串中找到了要搜索的字符串(包括 searchString 为空字符串的情况),则返回 true,否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - endsWith(searchString, endPosition?) endsWith() 方法用于判断一个字符串是否以指定字符串结尾,如果是则返回 true,否则返回 false。该方法区分大小写。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的作为结尾的字符串,不能是正则表达式。所有非正则表达式的值都会被强制转换为字符串。 endPosition number 否 - - 可选,预期找到 searchString 的末尾位置(即 searchString 最后一个字符的索引加 1)。默认为 str.length。 返回值 类型 描述 boolean 如果被检索字符串的末尾出现了指定的字符串(包括 searchString 为空字符串的情况),则返回 true;否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - repeat(count) repeat() 构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。 参数 名称 类型 必填 默认值 兼容性 描述 count number 是 - - 介于 0 和 +Infinity 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。 返回值 类型 描述 string 包含指定字符串的指定数量副本的新字符串。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - startsWith(searchString, position?) startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。这个方法区分大小写。 参数 名称 类型 必填 默认值 兼容性 描述 searchString string 是 - - 要搜索的子字符串。 position number 否 - - 在 str 中搜索 searchString 的开始位置,默认值为 0。 返回值 类型 描述 boolean 如果在字符串的开头找到了给定的字符则返回 true;否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - isWellFormed() String 值的 isWellFormed() 方法返回一个表示该字符串是否包含单独代理项的布尔值。 返回值 类型 描述 string 如果字符串不包含单独代理项,返回 true,否则返回 false。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app √ 4.25 x 4.25 x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toWellFormed() String 的 toWellFormed() 方法返回一个字符串,其中该字符串的所有单独代理项都被替换为 Unicode 替换字符 U+FFFD。 返回值 类型 描述 string 新的字符串是原字符串的一个拷贝,其中所有的单独代理项被替换为 Unicode 替换字符 U+FFFD。如果 str 是格式正确的,仍然会返回一个新字符串(本质上是 str 的一个拷贝)。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app √ 4.25 x 4.25 x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - at(index) 方法接受一个整数值,并返回一个新的 String,该字符串由位于指定偏移量处的单个 UTF-16 码元组成 参数 名称 类型 必填 默认值 兼容性 描述 index number 是 - - 字符指定偏移量处,允许正整数和负整数,负整数从字符串中的最后一个字符开始倒数。 返回值 类型 string | null 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 参见 相关 Bug Bug & Tips 目前 string 类型编译到 kotlin 为 kotlin.String


uniappx
2024年8月9日 02:45:40

Number Number 对象是经过封装的能让你处理数字值的对象。 构造函数 Constructor(value?) 创建一个 Number 对象。 参数 名称 类型 必填 默认值 兼容性 描述 value any 否 - - - 返回值 类型 Number 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 x x x x √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 注意:通过构造器函数创建Number对象的语法,目前仅支持web平台。 在app 平台,需要使用字面量定义或者Number.from()进行数字变量的创建 文档 实例方法 toFixed(fractionDigits?) 使用定点表示法来格式化一个数值。 参数 名称 类型 必填 默认值 兼容性 描述 fractionDigits number 否 - - 小数点后数字的个数;介于 0 到 20(包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。 返回值 类型 描述 string 使用定点表示法表示给定数字的字符串。 function financial(x: Number): String { return x.toFixed(2); } console.log(financial(123.456)); // expected output: "123.46" console.log(financial(0.004)); // expected output: "0.00" 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toString() 返回指定 Number 对象的字符串表示形式。如果转换的基数大于 10,则会使用字母来表示大于 9 的数字,比如基数为 16 的情况,则使用 a 到 f 的字母来表示 10 到 15。如果基数没有指定,则使用 10。如果对象是负数,则会保留负号。即使 radix 是 2 时也是如此:返回的字符串包含一个负号(-)前缀和正数的二进制表示,不是 数值的二进制补码。进行数字到字符串的转换时,建议用小括号将要转换的目标括起来,防止出错。 参数 名称 类型 必填 默认值 兼容性 描述 radix number 否 - - 指定要用于数字到字符串的转换的基数 (从 2 到 36)。如果未指定 radix 参数,则默认值为 10。 返回值 类型 string 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - valueOf() 返回一个被 Number 对象包装的原始值。 返回值 类型 描述 number 表示指定 Number 对象的原始值的数字。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app 4.0 3.9 4.11 √ √ √ UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toInt() 返回一个Int 值 返回值 类型 描述 Int 返回 number 对应的 Int 值。 let a = 12 console.log(a.toInt()); // expected output: 12 // Int最大值2147483647,溢出了 let b = 2147483648 // expected output: -2147483648 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 4.11 √ √ x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toFloat() 返回一个Float 值 返回值 类型 描述 Float 返回 number 对应的 Float 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 4.11 √ √ x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toDouble() 返回一个 Double 值 返回值 类型 描述 Double 返回 number 对应的 Double 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 4.11 √ √ x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUInt() 返回一个 UInt 值 返回值 类型 描述 UInt 返回 number 对应的 UInt 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 4.11 √ 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toByte() 将当前的Number数据转换为Byte表示,如果超出Byte最大值表示范围,会得到溢出后余数表示, app-andorid平台特有。 返回值 类型 描述 Byte 返回 number 对应的 Byte 值。 let a = 12 console.log(a.toByte()); // expected output: 12 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 x √ x x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toLong() 将当前的Number数据转换为Long表示,如果超出Long最大值表示范围,会得到溢出后余数表示, app-andorid平台特有。 返回值 类型 描述 Long 返回 number 对应的 Long 值。 let a = 12 console.log(a.toLong()); // expected output: 12 复制代码 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 x √ x x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toShort() 将当前的Number数据转换为Short表示,如果超出Short最大值表示范围,会得到溢出后余数表示, app-andorid平台特有。 返回值 类型 描述 Short 返回 number 对应的 Short 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 x √ x x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUShort() 将当前的 Number 数据转换为 UShort 表示,如果超出 UShort 最大值表示范围,会得到溢出后余数表示, app-andorid平台特有。 返回值 类型 描述 UShort 返回 number 对应的 UShort 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 x √ x x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toULong() 将当前的 Number 数据转换为 ULong 表示,如果超出 ULong 最大值表示范围,会得到溢出后余数表示, app-andorid平台特有。 返回值 类型 描述 ULong 返回 number 对应的 ULong 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 x √ x x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toInt64() 返回一个 Int64 值, app-iOS平台特有。 返回值 类型 描述 Int64 返回 number 对应的 Int64 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toInt32() 返回一个 Int32 值, app-iOS平台特有。 返回值 类型 描述 Int32 返回 number 对应的 Int32 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toInt16() 返回一个 Int16 值, app-iOS平台特有。 返回值 类型 描述 Int16 返回 number 对应的 Int16 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toInt8() 返回一个 Int8 值, app-iOS平台特有。 返回值 类型 描述 Int8 返回 number 对应的 Int8 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUInt64() 返回一个 UInt64 值, app-iOS平台特有。 返回值 类型 描述 UInt64 返回 number 对应的 UInt64 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUInt32() 返回一个 UInt32 值, app-iOS平台特有。 返回值 类型 描述 UInt32 返回 number 对应的 UInt32 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUInt16() 返回一个 UInt16 值, app-iOS平台特有。 返回值 类型 描述 UInt16 返回 number 对应的 UInt16 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - toUInt8() 返回一个 UInt8 值, app-iOS平台特有。 返回值 类型 描述 UInt8 返回 number 对应的 UInt8 值。 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x x 4.11 x 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - 静态方法 from() 通过 Int | Float | Double | Int64 | Int32 | Int16 | Int8 | UInt | UInt64 | UInt32 | UInt16 | UInt8 | Byte | Short | Long 类型创建一个 number 参数 名称 类型 必填 默认值 兼容性 描述 value Int | Float | Double | Int64 | Int32 | Int16 | Int8 | UInt | UInt64 | UInt32 | UInt16 | UInt8 | Byte | Short | Long 是 - - 必填。一个 Swfit 或者 Kottlin 专有数字类型的值。其中 Swift 平台 支持 Int, Float, Double, Int64, Int32, Int16, Int8, UInt, UInt64, UInt32, UInt16, UInt8。Kottlin 平台支持 Int, Float, Double, Byte, Short, Long 返回值 类型 描述 number 返回 number 兼容性 Web uni-app x Android uni-app x iOS uni-app x Android uni-app iOS uni-app Web uni-app x 3.9 4.11 3.9 3.9 x UTS 插件兼容性 Android uni-app x UTS 插件 Android uni-app UTS 插件 iOS uni-app x UTS 插件 iOS uni-app UTS 插件 - - - - let a: Int = 12 let b = Number.from(a) console.log(b); // expected output: 12 复制代码 参见 相关 Bug Android 平台方法 Number 类型编译到 kotlin 为 kotlin.Number


uniappx
2024年8月9日 02:45:15

模块 uts 支持将程序拆分为可按需导入的单独模块,模块中可以导入和导出各种类型的变量,如函数,字符串,数字,布尔值,类等。 导出 export 语句可以将一个文件中的函数,类等导出。比如: export const name: string = "square"; export function draw() {} export default class Canvas {} // default 关键词支持默认导出 复制代码 导出的函数声明与类声明必须要有名称。 export 命令可以出现在模块的任何位置,但必需处于模块顶层。 在一个文件中,export、import 可以有多个,export default 仅有一个。 通过 export 方式导出,在导入时要加{ },export default 则不需要。 导入 import 语句可以将另一个文件中的函数,类等导入到当前文件。比如: import { name as name1, draw } from "./canvas.uts" // 支持 as 语法做别名导入 import as Utils from "./utils.uts" // Utils 包含所有 export 的导出 import Canvas from "./canvas.uts" // 对应 export default 的导出 复制代码 示例 /-----export [test.js]-----/ export const name = 'test' export function test(){ console.log('test') } export default class Test{ test(){ console.log('Test.test') } } 复制代码 import { name } from './test.uts' import as testModule from './test.uts' import Test from './test.uts' console.log(name) testModule.test() const test = new Test() test.test() 复制代码 指定别名 使用 as 关键字可以为导入的值指定别名 import { name as testName } from './test.uts' import as testModule from './test.uts' 复制代码 数据共享和复用 可以使用 export 语句将变量或函数导出,以便其他模块可以访问和使用它们。导出的变量可以在模块内共享,并在其他模块中导入和复用。 示例 /-----export [global.uts]-----*/ // 导出变量 export let count = 1 // 导出函数 export function addCount() { count++ } 复制代码 // module1.uts import { count, addCount } from './global.uts' console.log(count) // 1 addCount() console.log(count) // 2 // module2.uts import { count, addCount } from './global.uts' console.log(count) // 2 复制代码 如果只想在不同模块中复用变量而不共享其引用,可以使用函数包装变量来创建独立的作用域。


uniappx
2024年8月9日 02:45:03

泛型(Generics) UTS 支持泛型(Generics)特性,允许您编写更通用、可重用的代码,同时提高类型安全性。 定义泛型 泛型使用尖括号 <> 声明一个或多个泛型参数。 泛型函数 泛型函数的泛型参数定义在函数参数的圆括号之前。 function test<T>(arg: T): T { return arg } const str: string = test<string>('a') const num: number = test<number>(1) 复制代码 泛型类 泛型类的泛型参数定义在类名之后。 class Test<T> { value: T constructor (value: T) { this.value = value } } const test1: Test<string> = new Test<string>('a') const str1: string = test1.value const test2: Test<number> = new Test<number>(1) const num1: number = test2.value 复制代码 泛型接口 泛型接口与泛型类相似,泛型参数定义在接口名之后。 interface ITest<T> { value: T } class TestImpl<T> implements ITest<T> { value: T } 复制代码 泛型推断 当泛型参数类型与函数的参数类型相关时,泛型参数能够根据函数参数类型自动推断,此时可以省略泛型参数。 const str1 = test<string>('a') const str2 = test('a') 复制代码 泛型约束 可以使用 extends 关键字来限制泛型参数的类型范围。 function testArray<T extends Array<string>>(arg: T): T { return arg } 复制代码 使用其他泛型类型时,如果不需要限制泛型参数的类型可以使用 unknown 关键字表示。 function testArray<T extends Array<unknown>>(arg: T): T { return arg } 复制代码 泛型使用场景示例 泛型用法最常用的是在request api里,详见 网络请求包装推荐使用成熟的网络拦截器插件,见插件市场 注意事项 安卓平台使用泛型注意事项 ts本质是擦除类型的。在强类型语言中,传递泛型时如将泛型类型作为值使用,需通过特殊方式将泛型类型作为值使用,可以根据传入来动态决定返回类型。详见 iOS 平台使用泛型注意事项 由于 iOS 平台 uni-app x 中的 uvue 运行在 js 环境中,以及 swift 语法的特殊性,泛型在 iOS 平台上的使用有一定限制和差异。 在 uvue 中使用: uvue 中可以正常使用泛型,iOS 平台上 uvue运行在 js 环境中,在 uvue 中的泛型就是 js 泛型。 在 uvue 页面中使用的泛型类型传递给 uts 插件使用时,泛型信息会丢失。 在 uts 插件中使用: uts 插件中支持使用泛型函数、泛型类、泛型约束、泛型推断。目前仅适合在 uts 插件内部使用,运行在纯 swift 环境中。 uts 插件中暂不支持泛型接口的定义。 uts 插件中不能导出泛型函数、泛型类给 js 和其他 uts 插件使用。 说明:因为导出的泛型函数、泛型类不能被反射识别,无法使用。导出泛型函数还可能会导致编译失败。 下面是在 uts 插件内部使用泛型的一些示例代码: 泛型函数和泛型推断示例,泛型用在返回值上: // 定义泛型函数 function test1<T>(param: any): T | null { if (param instanceof T) { return param as T } return null } // 使用: let str: string | null = test1<string>("12345") console.log(str) 复制代码 特别注意: 在 swift 中调用泛型函数时不能直接指定泛型类型,只能靠参数或者返回值来进行泛型类型的推断。 上述示例代码使用泛型函数时,给变量 str 指定了具体类型,这个是必须的,且指定的类型要和泛型函数的返回值是否可选保持一致(泛型函数返回值是 T | null, str 类型就得是 string | null, 否则 将会因为推断不出泛型类型导致编译报错。 泛型类和泛型约束示例: // 自定义type type MyResult = { name: string age: number } // 定义泛型类,并指定泛型约束 class TestOption<T extends Decodable> { a: string = "" b: number = 0 success?: (res: T) => void } // 定义泛型函数 function test2<T extends Decodable>(param: TestOption<T>) { let str = "{\"name\":\"2024\",\"age\":2}" // 这句代码是为了让编译给 MyResult 实现 Decodable 协议,不可省略。后续版本会给出让开发者指定某个 type 遵循 Decodable 协议的方式。 JSON.parseObject<MyResult>(str) let ret = JSON.parseObject<T>(str) if (ret != null) { param.success?.(ret!) } } // 使用: let p = new TestOption<MyResult>() p.success = (res: MyResult) => { console.log(res) } test2<MyResult>(p) 复制代码 特别注意: 目前版本不支持在自定义 type 上指定泛型,因为在通过字面量创建 type 类型的对象时,泛型信息丢失导致编译失败。这是一个 BUG,我们将在后续版本中进行修复。


uniappx
2024年8月9日 02:44:47

类型兼容性 由于 UTS 语言最终会转换为 kotlin、swift 等语言,UTS 语言中的接口也更接近 kotlin 中的接口或 swift 中的协议,在类型兼容性判断时与 TS 语言的结构类型系统有着明显的区别: TS:如果两个类型的内部结构相似(具有相同的属性和方法),那么它们被认为是兼容的,即使它们的名称不同。 UTS:依赖于类型的显式声明,必需是同一个类型或者存在显式的继承/实现关系。 interface IPerson { name: string printName(): void } class Person implements IPerson { constructor(public name: string) {} printName(): void { console.log(this.name) } } class Person1 { constructor(public name: string) {} printName(): void { console.log(this.name) } } type PersonObject = { name: string printName(): void } class Person2 extends Person {} const person: IPerson = new Person('Tom') // 正确,Person 实现自 IPerson const person1: Person = new Person1('Tom') // 错误,Person 与 Person1 无关只是结构相同 const person2: Person = new Person2('Tom') // 正确,Person2 继承自 Person const person3: IPerson = { name: 'Tom', printName: function () { console.log(this.name) } } as PersonObject // 错误,PersonObject 类型与 IPerson 无关只是结构相同 复制代码 运行时类型保留 不同于ts编译后完全抹除类型,uts在运行时保留了部分类型信息。通常是定义type后,创建此type对应的实例时,会保留此实例的类型信息。 例如: type Obj = { a: number } const obj = { a: 1 } as Obj // 此时obj的类型为Obj,运行时可以使用 obj instanceof Obj console.log(obj instanceof Obj) // true const result = JSON.parse<Obj>(`{"a": 1}`) // 此时返回的对象类型为Obj console.log(result instanceof Obj) // true 复制代码 注意 目前 web端uni.request传入泛型时不会创建对应类型的实例,会直接抹除类型信息,后续可能会调整为创建泛型类型对应的实例,请勿利用此特性。 web端仅项目内定义的类型可以被实例化,uni-app-x内部定义的类型无法被实例化,例如const options = { url: 'xxx' } as RequestOptions,并不会将此对象转化为RequestOptions的实例,运行时也没有RequestOptions对应的类型信息。 any类型 4.18版本起,uts在编译到js时,any类型会包含null类型。 不同于ts,uts中any类型不包含null类型。 例如定义可选参数时应使用下面的写法: function test(anything?: any | null) { // 注意带上问号 console.log(anything) } 复制代码 可选属性 如果属性在类型中是可选值需要使用下面的写法,不要省略问号和| null type Options = { num?: number | null } 复制代码 void/undefined类型 为保证多端统一应尽量避免使用undefined、void类型,可以使用null代替。如果需要判断是否为null建议使用两个等号,不要使用三个等号(此处使用了js的特性undefined == null结果为true)。 String、Number、Boolean类型 ts内string、number、boolean类型与String、Number、Boolean类型并不相同。 let str1: String = '1' let str2: string = '2' str1 = str2 // 不报错 str2 = str1 // 报错 Type 'String' is not assignable to type 'string' 复制代码 尽量使用string、number、boolean类型替代String、Number、Boolean类型。 import type 由于uts会为as为某些类型的对象字面量创建这个类型对应的实例,所以经常会存在一些类型引入后是作为值使用而不是作为类型使用。应尽量不要使用import type用法,避免编译结果出错。 import type { TypeA } from './type' // 避免使用 import { TypeA } from './type' // 推荐用法


uniappx
2024年8月9日 02:44:27

接口(Interface) 接口提供了一种约定,用于确保对象的属性和方法遵循特定的模式。接口只能包含抽象的声明,不能包含具体的实现。接口本身不能被实例化,它可以被类所采用,以提供具体的实现。 在 ts 中,经常把json数据转为 interface 或 type 。但在 uts 中,只适合转 type,不适合使用 interface。因为 interface 在 kotlin 和 swift 中另有不同。 接口使用关键字 interface 声明。 interface IPerson { name: string; printName(): void; } 复制代码 接口继承 接口可以继承一个或多个接口: interface IPerson1 extends IPerson {} 复制代码 实现接口 类可以实现一个或多个接口: class Person implements IPerson { constructor(public name: string) {} printName() { console.log(this.name); } }


uniappx
2024年8月9日 02:44:13

类(Class) uts 中使用关键字 class 声明类。 类声明由类名以及由花括号包围的类体构成。 // 定义Person Class class Person { } 复制代码 基本概念 类是对象化的概念,有属性、方法、构造函数。 属性:是一个简单的值,可以是字符串、数字、布尔或另一个class。可以用 对象.属性名 的访问,也可以通过 对象.属性名=xxx 的方式赋值。 方法:是一段代码的集合,有入参、有返回值(均可选)。可以用 对象.方法名(参数) 的方式访问。 构造函数:用于初始化实例。详见下 下面的示例中,定义了一个 Person 的 class,它有一个属性 name,有一个构造函数 constructor(名称不可改),还有一个方法 getNameLength。 // 定义Person Class class Person { name:string = ""; // 属性name constructor(newname:string) { // 构造函数,参数newname console.log("开始实例化"); this.name = newname; } getNameLength():number{ // 方法getNameLength return this.name.length } } 复制代码 定义了class后,需要实例化(通过new关键字)。定义一个实例后,即可使用该实例对象的属性和方法。 一个class可以被多次实例化为不同的实例,互不影响。 //实例化上面定义的class并调用其属性方法 let p = new Person("tom"); // 使用 new 关键字实例化对象时,会自动触发构造函数 console.log(p.name); // 访问p这个对象的属性name,返回值tom console.log(p.getNameLength()); // 调用p这个对象的方法getNameLength,返回值3 let p2 = new Person("jerry"); // 使用 new 关键字再实例化一个新对象 console.log(p2.name); //jerry console.log(p2.getNameLength()); //5 复制代码 构造函数(constructor) 构造函数 constructor ,在创建新对象时(new的时候)会自动执行,用于初始化对象属性。 语法: constructor([arguments]) { ... } 复制代码 描述: 你可以不写构造函数。如果没有显式指定构造函数,运行环境会自动添加默认的 constructor 方法。 在一个类中只能有一个名为 “constructor” 的特殊方法。一个类中出现多次构造函数 (constructor)方法将会抛出一个 SyntaxError 错误。 示例: class Person { name:string = ""; constructor(newname:string) { this.name = newname; } } let person = new Person("tom"); // 使用 new 关键字创建对象时,会自动触发构造函数 console.log(person.name); // tom 复制代码 在一个构造函数中可以使用 super 关键字来调用一个父类的构造函数。这涉及继承的概念。如不了解继承可见下 class Polygon { constructor() { this.name = "Polygon"; } } class Square extends Polygon { constructor() { super(); } } 复制代码 特别说明: iOS 平台中在实现无参的 constructor() 或者重写父类的某个有参的构造函数时需要在构造函数前加上 @UTSiOS.override。 示例如下: class Polygon { @UTSiOS.override constructor() { this.name = "Polygon"; } } class Square extends Polygon { @UTSiOS.override constructor() { super(); } } 复制代码 实例属性 class 有实例属性和静态属性。uts 中实例属性存在于类的每一个实例中。 声明实例属性 uts 可以在类中声明属性,默认可读,可写。 class Person { name:string = ""; // 声明实例属性name city:string = "beijing" // 声明实例属性city constructor(newname:string) { this.name = newname; // 在构造函数中对name重新赋值 } } let person1 = new Person("tom"); // 使用 new 关键字创建对象时,会自动触发构造函数 console.log(person1.name); //tom console.log(person1.city); //beijing let person2 = new Person("jerry"); // 使用 new 关键字创建对象时,会自动触发构造函数 console.log(person2.name); //jerry console.log(person2.city); //beijing 复制代码 Getter 与 Setter uts 支持通过 getters/setters 来截取对对象属性的访问。它可以理解为属性的读取/写入的拦截器。 下面的例子中,针对 person对象提供了name的get和set的拦截,paascode不正确时无法修改name的值。 const passcode = "secret passcode"; class Person { private name: string = ""; // private是私有的,外部不能访问 get name(): string { // 读取name会触发此拦截器 console.log("start to get person.name"); return this.name; } set name(newName: string) { // 给name赋值会触发此拦截器 console.log("start to set person.name"); if (passcode === "secret passcode") { // 校验是否有权修改name的值,这里的条件可以修改以方便测试 this._name = newName; } else { console.log("Error: set person.name fail"); } } } let p = new Person() p.name = "tom" // 会打印"start to set person.name" console.log(p.name); // 先打印"start to get person.name",然后打印"tom" 复制代码 readonly uts 可以使用 readonly 关键字将属性设置为只读的。只读属性必须在声明时或构造函数里被初始化。 class Person { readonly name: string; readonly age: number = 0; constructor (theName: string) { this.name = theName; } } let p = new Person("tom"); console.log(p.name); p.name = "jerry"; // 错误! name 是只读的 p.age = 1 // 错误! age 是只读的 复制代码 但 readonly 更多是一种开发环境的语法校验。在运行时,该值往往可以改变。 静态属性(static) 使用关键字 static 来将一个属性声明为静态属性。静态属性不会在实例中被调用,而只会被类本身调用。 class Person { static age:number = 10; // age是静态属性。不能在实例p中访问,但可以通过类Person访问 getAge():number{ return Person.age } } console.log(Person.age); //10 let p = new Person(); //新建一个实例 console.log(p.getAge()); //10 复制代码 实例方法 uts 中实例方法存在于类的每一个实例中。 声明实例方法 uts 可以在类中声明实例方法。 下面定义一个通过高度乘以宽度计算面积的类。 class Rectangle { private height:number; private width:number; constructor(height: number, width: number) { this.height = height; this.width = width; } calcArea(): number { return this.height * this.width; } } 复制代码 使用一个实例方法,以类实例调用它即可: const square = new Rectangle(10, 10); square.calcArea(); // 100 复制代码 静态方法(static) 使用关键字 static 来将一个方法声明为静态方法。静态方法不会在实例中被调用,而只会被类本身调用。它们经常是工具函数,比如用来创建或者复制对象。 class ClassWithStaticMethod { static staticMethod(): string { return "static method has been called."; } } ClassWithStaticMethod.staticMethod(); // 不实例化,直接调用class的方法 复制代码 继承(extends) uts 允许使用继承来扩展现有的类。扩展的子类继承了父类的属性方法,但又可以添加自己独有的属性方法,以及复写父类定义的属性方法。 被继承的类称为父类(也称为超类、基类),新扩展的类称为子类(也称为派生类)。 比如定义了Person类存储人的基本信息,还可以定义一个Developer子类继承自Person类,在子类里追加Developer的独有信息。 语法: class ChildClass extends ParentClass { ... } 复制代码 描述: extends 关键字用来创建一个类的子类。 示例: // 定义父类 class Person { name:string = ""; constructor(newname:string) { this.name = newname; } } // 定义子类 class Developer extends Person{ likeLanguage:string = "ts" constructor(newname:string) { super(newname) } } let d = new Developer("tom"); // 实例化。由于子类没有声明和复写自己的构造函数,所以默认继承了父类的构造函数 console.log(d.name); // tom console.log(d.likeLanguage); // ts 复制代码 子类必须包含构造函数的实现且必须使用 super 调用父类的构造函数。 如果要控制父类中某些属性方法不被子类继承,可使用可见性修饰符(private、protected等),具体见下 多重继承:子类还可以被孙类继承 覆盖方法(override) 覆盖,也称为复写、重写。在继承中,用于在子类中改写父类定义的方法或属性。 uts 对于可覆盖的成员以及覆盖后的成员需要显式修饰符override。 class Polygon { name(): string { return "Polygon"; } } class Square extends Polygon { constructor() { super() } override name(): string { return "Square"; } } 复制代码 Square.name 函数上必须加上 override 修饰符。如果没写,编译器会报错。 覆盖属性 属性与方法的覆盖机制相同。父类中已声明的同名属性,在子类中重新声明必须以 override 开头,并且它们必须具有兼容的类型(都是字符串、或数字、布尔值等)。 class Shape { vertexCount: Int = 0 } class Rectangle extends Shape { constructor() { super() } override vertexCount = 4 } 复制代码 特别说明: iOS 平台中不允许覆盖和父类同名的存储属性,但是可以覆盖和父类同名的计算属性。 调用父类实现 子类中的代码可以使用 super 关键字调用其父类的方法。不能跨级调用父类的父类(爷爷类)的方法。 class Rectangle { draw() {} } class FilledRectangle extends Rectangle { constructor() { super() } override draw() { super.draw(); } } 复制代码 可见性修饰符 类的方法与属性都可以有可见性修饰符。 在 uts 中有三个可见性修饰符:private、 protected、 和 public。 默认可见性是 public。 public 在 uts 中可以自由的访问程序里定义的 public 成员,这也是 uts 的默认行为。 private 当成员被标记成 private 时,它就不能在声明它的类的外部访问。比如: class Person { private name: string = "Cat"; } new Person().name; // 错误: 'name' 是私有的. 复制代码 protected protected 修饰符与 private 修饰符的行为很相似,但有一点不同,protected 成员在继承的派生类中仍然可以访问。比如: class Person { protected name: string; constructor(name: string) { this.name = name; } } class Employee extends Person { private department: string; constructor(name: string, department: string) { super(name); this.department = department; } public getElevatorPitch(): string { return `Hello, my name is ${this.name} and I work in ${this.department}.`; } } const howard = new Employee("Howard", "Sales"); console.log(howard.getElevatorPitch()); console.log(howard.name); // 错误 复制代码 注意,我们不能在 Person 类外使用 name,但是我们仍然可以通过 Employee 类的实例方法访问,因为 Employee 是由 Person 派生而来的。 this this 只能用在成员函数(类的方法)内部,this 引用的是调用该函数的对象实例。this 的指向不受函数作用域的影响,也不可以被改变。 class Test { test() { console.log(this) // Test 的实例对象 function fn() { console.log(this) // 仍然是 Test 的实例对象 } fn() } } 复制代码 受目标语言的限制,编译到 kotlin/swift 时,this 可以缺省,此特性目前无法屏蔽,但不推荐主动使用。当类的成员命名与外层变量同名时,需注意区分。 const a = 1 class Test { a = 0 test() { console.log(a) // this.a 0 } } 复制代码 平台专有用法 kotlin 平台获取 Java Class 对象 UTSAndroid.getJavaClass kotlin 平台 Class 特殊方法说明 在kotlin平台,class 里的某些方法是具备特殊含义的,整理记录如下: 方法名 简介 详细说明 equals 定义当前对象实例是否与另外一个对象实例相同 文档 hashcode 定义当前对象实例的散列计算过程,常用于在容器中标记当前对象实例的唯一性 文档 toString 以字符串的方式序列化描述当前对象实例 文档 更多介绍参考 文档 kotlin 平台匿名内部类写法 const runnable = new (class implements Runnable { override run() { } })


正在加载...