• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (Int8Array)
2<!--Kit: ArkTS-->
3<!--Subsystem: CommonLibrary-->
4<!--Owner: @lijiamin2025-->
5<!--Designer: @weng-changcheng-->
6<!--Tester: @kirl75; @zsw_zhushiwei-->
7<!--Adviser: @ge-yafang-->
8> **说明:**
9>
10> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
11>
12> 此模块仅支持在ArkTS文件(文件后缀为.ets)中导入使用。
13
14一种线性数据结构,底层基于[ArkTS ArrayBuffer](arkts-apis-arkts-collections-ArrayBuffer.md)实现。
15
16**装饰器类型:**\@Sendable
17
18## 导入模块
19
20```ts
21import { collections } from '@kit.ArkTS';
22```
23
24## 属性
25
26**系统能力:** SystemCapability.Utils.Lang
27
28**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
29
30| 名称   | 类型   | 只读 | 可选 | 说明              |
31| ------ | ------ | ---- | ---- | ----------------|
32| buffer | ArrayBuffer | 是   | 否  | ArkTS Int8Array底层使用的buffer。|
33| byteLength | number | 是   | 否   | ArkTS Int8Array的所占的字节数。|
34| byteOffset | number | 是   | 否   | ArkTS Int8Array距离其ArrayBuffer起始位置的偏移。|
35| length | number | 是   | 否  | ArkTS Int8Array元素个数。|
36| BYTES_PER_ELEMENT | number | 是   | 否   | ArkTS Int8Array中每个元素所占用的字节数。|
37
38## constructor
39constructor()
40
41构造函数,用于创建一个空ArkTS Int8Array对象。
42
43**系统能力:** SystemCapability.Utils.Lang
44
45**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
46
47**错误码:**
48
49以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
50
51| 错误码ID | 错误信息                                                |
52| -------- | ------------------------------------------------------- |
53| 10200012 | The Int8Array's constructor cannot be directly invoked. |
54
55**示例:**
56
57```ts
58let int8Array: collections.Int8Array = new collections.Int8Array();
59```
60
61## constructor
62constructor(length: number)
63
64构造函数,用于创建一个指定长度的ArkTS Int8Array对象。
65
66**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
67
68**系统能力:** SystemCapability.Utils.Lang
69
70**参数:**
71
72| 参数名  | 类型   | 必填 | 说明                          |
73| ------- | ------ | ---- | --------------------------- |
74| length | number | 是 | 用于指定ArkTS Int8Array的长度。 |
75
76**错误码:**
77
78以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
79
80| 错误码ID | 错误信息                                                  |
81| -------- | -------------------------------------------------------  |
82| 401      | Parameter error.                                         |
83| 10200012 | The Int8Array's constructor cannot be directly invoked. |
84
85
86**示例:**
87
88```ts
89// 以长度参数构造对象
90let int8Array: collections.Int8Array = new collections.Int8Array(12);
91```
92
93## constructor
94constructor(array: ArrayLike\<number> | ArrayBuffer)
95
96构造函数,以ArrayLike或ArkTS ArrayBuffer创建一个ArkTS Int8Array对象。
97
98**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
99
100**系统能力:** SystemCapability.Utils.Lang
101
102**参数:**
103
104| 参数名  | 类型   | 必填 | 说明                                                         |
105| ------- | ------ | ---- | ------------------------------------------------------------ |
106| array |  ArrayLike\<number> \| ArrayBuffer | 是 | 用于构造ArkTS Int8Array的对象。当参数类型是ArrayBuffer时buffer所占的字节数须是4的整数倍。 |
107
108**错误码:**
109
110以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
111
112| 错误码ID | 错误信息                                                |
113| -------- | ------------------------------------------------------- |
114| 401      | Parameter error.                                         |
115| 10200012 | The Int8Array's constructor cannot be directly invoked. |
116
117**示例:**
118
119```ts
120// 例1 从一个ArrayLike构造对象
121let arrayLike = [1, 3, 5];
122let array: collections.Int8Array = new collections.Int8Array(arrayLike);
123```
124
125```ts
126// 例2 从一个ArrayBuffer构造对象
127let arrayBuffer: collections.ArrayBuffer = new collections.ArrayBuffer(12);
128let array: collections.Int8Array = new collections.Int8Array(arrayBuffer);
129```
130
131```ts
132// 例3 从另一ArkTS Int8Array构造对象
133let arrayLike = [1, 3, 5];
134// int8Array1 [1, 3, 5]
135let int8Array1: collections.Int8Array = new collections.Int8Array(arrayLike);
136// int8Array2 [1, 3, 5]
137let int8Array2: collections.Int8Array = new collections.Int8Array(int8Array1);
138```
139
140## constructor
141constructor(elements: Iterable\<number>)
142
143构造函数,以Iterable创建一个ArkTS Int8Array对象。
144
145**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
146
147**系统能力:** SystemCapability.Utils.Lang
148
149**参数:**
150
151| 参数名  | 类型   | 必填 | 说明                                                         |
152| ------- | ------ | ---- | ------------------------------------------------------------ |
153| elements |  Iterable\<number> | 是 | 可迭代数字集合,用于构造ArkTS Int8Array对象。 |
154
155**错误码:**
156
157以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
158
159| 错误码ID | 错误信息                                                |
160| -------- | ------------------------------------------------------- |
161| 401      | Parameter error.                                         |
162| 10200012 | The Int8Array's constructor cannot be directly invoked. |
163
164**示例:**
165
166```ts
167// 从一个Iterable构造对象
168let set: Set<number> = new Set<number>([1, 2, 3]);
169let array: collections.Int8Array = new collections.Int8Array(set);
170// Int8Array [1, 2, 3]
171```
172
173## constructor
174constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number)
175
176构造函数,以ArrayBuffer创建一个ArkTS Int8Array对象。
177
178**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
179
180**系统能力:** SystemCapability.Utils.Lang
181
182**参数:**
183
184| 参数名  | 类型   | 必填 | 说明                                         |
185| ------- | ------ | ---- | ------------------------------------------ |
186| buffer | ArrayBuffer | 是 | 用于构造ArkTS Int8Array的ArrayBuffer对象。buffer所占的字节数须是4的整数倍。|
187| byteOffset | number | 否 | 指定buffer的字节偏移,从0开始,默认为0。 |
188| length | number | 否 | 指定ArkTS Int8Array的长度,默认为0。 |
189
190**错误码:**
191
192以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
193
194| 错误码ID | 错误信息                                                   |
195| -------- | -------------------------------------------------------   |
196| 401      | Parameter error.                                         |
197| 10200012 | The Int8Array's constructor cannot be directly invoked. |
198
199**示例:**
200
201```ts
202let int8Array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5, 6]);
203console.info("byteLength: " + int8Array.buffer.byteLength); // byteLength: 6
204// 从int8Array对应buffer第1个字节开始,长度为5
205let int8Array1: collections.Int8Array = new collections.Int8Array(int8Array.buffer, 1, 5);
206console.info("[" + int8Array1 + "]"); // [2, 3, 4, 5, 6]
207```
208
209## from
210static from(arrayLike: ArrayLike\<number>): Int8Array
211
212从一个ArrayLike或者可迭代对象中创建一个ArkTS Int8Array对象。
213
214**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
215
216**系统能力:** SystemCapability.Utils.Lang
217
218**参数:**
219
220| 参数名  | 类型   | 必填 | 说明                                                  |
221| ------- | ------ | ---- | --------------------------------------------------- |
222| arrayLike | ArrayLike\<number> | 是 | 用于构造ArkTS Int8Array的ArrayLike对象。 |
223
224**返回值:**
225
226| 类型         | 说明      |
227| ------------ | --------- |
228| Int8Array | 新创建的ArkTS Int8Array对象。|
229
230**错误码:**
231
232以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
233
234| 错误码ID | 错误信息                                                  |
235| -------- | -------------------------------------------------------  |
236| 401      | Parameter error.                                         |
237
238**示例:**
239```ts
240let arrayLike = [1, 3, 5];
241let array: collections.Int8Array = collections.Int8Array.from(arrayLike); // array [1, 3, 5]
242```
243
244## from
245static from\<T>(arrayLike: ArrayLike\<T>, mapFn: TypedArrayFromMapFn\<T, number>): Int8Array
246
247从一个ArrayLike中创建一个ArkTS Int8Array对象。
248
249**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
250
251**系统能力:** SystemCapability.Utils.Lang
252
253**参数:**
254| 参数名  | 类型   | 必填 | 说明                                        |
255| ------- | ------ | ---- | ------------------------------------------|
256| arrayLike | ArrayLike\<T> | 是 | 用于构造ArrayLike对象。              |
257| mapFn | [TypedArrayFromMapFn](arkts-apis-arkts-collections-Types.md#typedarrayfrommapfn)\<T, number> | 是 | 映射函数。|
258
259**返回值:**
260
261| 类型         | 说明      |
262| ------------ | --------- |
263| Int8Array | 新创建的ArkTS Int8Array对象。|
264
265**错误码:**
266
267以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
268
269| 错误码ID | 错误信息                                                  |
270| -------- | -------------------------------------------------------  |
271| 401      | Parameter error.                                         |
272
273**示例:**
274
275```ts
276// 例1 从一个对象创建
277let array: collections.Int8Array = collections.Int8Array.from<number>(
278  { length: 5 }, (v: Object, k: number) => k);
279// Int8Array [0, 1, 2, 3, 4]
280```
281
282```ts
283// 例2 从一个字符数组创建
284let array: collections.Int8Array = collections.Int8Array.from<string>(
285  ["1", "3", "5"], (v: string, k: number) => parseInt(v));
286// Int8Array [1, 3, 5]
287```
288
289```ts
290// 例3 从一个字符串创建
291let array: collections.Int8Array = collections.Int8Array.from<string>(
292  "12345", (v: string, k: number) => parseInt(v));
293// Int8Array [1, 2, 3, 4, 5]
294```
295
296## from
297static from(arrayLike: Iterable\<number>, mapFn?: TypedArrayFromMapFn\<number, number>): Int8Array
298
299从一个可迭代对象中创建一个ArkTS Int8Array对象。
300
301**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
302
303**系统能力:** SystemCapability.Utils.Lang
304
305**参数:**
306| 参数名  | 类型   | 必填 | 说明                                |
307| ------- | ------ | ---- | -----------------------------------|
308| arrayLike | Iterable\<number> | 是 | 用于构造的可迭代对象。   |
309| mapFn | [TypedArrayFromMapFn](arkts-apis-arkts-collections-Types.md#typedarrayfrommapfn)\<number, number> | 否 | 映射函数。如果省略,则不对元素进行加工处理。|
310
311**返回值:**
312
313| 类型         | 说明      |
314| ------------ | --------- |
315| Int8Array | 新创建的ArkTS Int8Array对象。|
316
317**错误码:**
318
319以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)。
320
321| 错误码ID | 错误信息                                                  |
322| -------- | -------------------------------------------------------  |
323| 401      | Parameter error.                                         |
324
325**示例:**
326
327```ts
328// 例1 不指定映射函数
329let set: Set<number> = new Set<number>([1, 2, 3]);
330let array: collections.Int8Array = collections.Int8Array.from(set);
331// Int8Array [1, 2, 3]
332```
333
334```ts
335// 例2 指定映射函数
336let set: Set<number> = new Set<number>([1, 2, 3]);
337let array: collections.Int8Array = collections.Int8Array.from(
338  set, (v: number, k: number) => v + k);
339// Int8Array [1, 3, 5]
340```
341
342## of<sup>18+</sup>
343
344static of(...items: number[]): Int8Array
345
346通过可变数量的参数创建一个新的ArkTS Int8Array对象,参数个数可以是0个、1个或者多个。
347
348**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
349
350**系统能力:** SystemCapability.Utils.Lang
351
352**参数:**
353
354| 参数名    | 类型          | 必填 | 说明                            |
355| --------- | ------------- | ---- | ------------------------------- |
356| items | number[] | 否   | 用于创建数组的元素,参数个数可以是0个、1个或者多个。 |
357
358**返回值:**
359
360| 类型      | 说明                    |
361| --------- | ----------------------- |
362| Int8Array | 新的ArkTS Int8Array实例。 |
363
364**错误码:**
365
366以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
367
368| 错误码ID | 错误信息                         |
369| -------- | -------------------------------- |
370| 401 | Parameter error: Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types;3. Parameter verification failed. |
371
372**示例:**
373
374```ts
375let arr: collections.Int8Array = collections.Int8Array.of(1, 2, 3, 4);
376console.info(arr.toString()); // 预期输出:1,2,3,4
377```
378
379## toString<sup>18+</sup>
380
381toString(): string
382
383ArkTS Int8Array转换为字符串。
384
385**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
386
387**系统能力:** SystemCapability.Utils.Lang
388
389**返回值:**
390
391| 类型         | 说明            |
392| ---------- | ------------- |
393| string | 一个包含数组所有元素的字符串。 |
394
395**错误码:**
396
397以下错误码详细介绍请参考[语言基础类库错误码](errorcode-utils.md)。
398
399| 错误码ID    | 错误信息                                 |
400| -------- | ------------------------------------ |
401| 10200011 | The toString method cannot be bound. |
402| 10200201 | Concurrent modification error.       |
403
404**示例:**
405
406```ts
407let array = new collections.Int8Array([1, 2, 3, 4, 5]);
408let stringArray = array.toString();
409console.info(stringArray); // 预期输出:1,2,3,4,5
410```
411
412## toLocaleString<sup>18+</sup>
413
414toLocaleString(): string
415
416根据当前应用的系统地区获取符合当前文化习惯的数字表示形式,让每个元素调用自己的toLocaleString方法把数字转换为字符串,然后使用逗号将每个元素的结果字符串按照顺序拼接成字符串。
417
418**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
419
420**系统能力:** SystemCapability.Utils.Lang
421
422**返回值:**
423
424| 类型         | 说明            |
425| ---------- | ------------- |
426| string | 一个包含数组所有元素的字符串。 |
427
428**错误码:**
429
430以下错误码详细介绍请参考[语言基础类库错误码](errorcode-utils.md)。
431
432| 错误码ID    | 错误信息                                       |
433| -------- | ------------------------------------------ |
434| 10200011 | The toLocaleString method cannot be bound. |
435| 10200201 | Concurrent modification error.             |
436
437**示例:**
438
439```ts
440// 当前应用所在系统为法国地区
441let array = new collections.Int8Array([100, 110, 120]);
442let stringArray = array.toLocaleString();
443console.info(stringArray); // 预期输出:100,110,120
444```
445
446## copyWithin
447copyWithin(target: number, start: number, end?: number): Int8Array
448
449从ArkTS Int8Array指定范围内的元素依次拷贝到目标位置。
450
451**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
452
453**系统能力:** SystemCapability.Utils.Lang
454
455**参数:**
456
457| 参数名  | 类型   | 必填 | 说明                                                         |
458| ------- | ------ | ---- | ------------------------------------------------------------ |
459| target | number | 是 | 目标起始位置的下标,如果`target < 0`,则会从`target + array.length`位置开始。 |
460| start | number | 是 | 源起始位置下标,如果`start < 0`,则会从`start + Int8Array.length`位置开始。 |
461| end | number | 否 | 源终止位置下标(不包含end位置的元素),如果`end < 0`,则会从`end + Int8Array.length`位置终止。默认为ArkTS Int8Array的长度。|
462
463**返回值:**
464
465| 类型         | 说明      |
466| ------------ | --------- |
467| Int8Array | 修改后的Int8Array。 |
468
469**错误码:**
470
471以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
472
473| 错误码ID | 错误信息                                          |
474| -------- | ------------------------------------------------ |
475| 401      | Parameter error.                                 |
476| 10200011 | The copyWithin method cannot be bound.           |
477| 10200201 | Concurrent modification error.               |
478
479**示例:**
480
481```ts
482let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5, 6, 7, 8]);
483let copied: collections.Int8Array = array.copyWithin(3, 1, 3);
484// Int8Array [1, 2, 3, 2, 3, 6, 7, 8]
485```
486
487## some
488some(predicate: TypedArrayPredicateFn\<number, Int8Array>): boolean
489
490测试ArkTS Int8Array中的是否存在元素满足指定条件。
491
492**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
493
494**系统能力:** SystemCapability.Utils.Lang
495
496**参数:**
497
498| 参数名  | 类型   | 必填 | 说明                                                  |
499| ------- | ------ | ---- | ---------------------------------------------------- |
500| predicate | [TypedArrayPredicateFn](arkts-apis-arkts-collections-Types.md#typedarraypredicatefn)\<number, Int8Array> | 是 | 用于测试的断言函数。|
501
502**返回值:**
503
504| 类型         | 说明      |
505| ------------ | --------- |
506| boolean | 如果存在元素满足指定条件返回true,否则返回false。|
507
508**错误码:**
509
510以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
511
512| 错误码ID | 错误信息                            |
513| -------- | ---------------------------------- |
514| 401      | Parameter error.                   |
515| 10200011 | The some method cannot be bound.   |
516| 10200201 | Concurrent modification error. |
517
518**示例:**
519
520```ts
521let arrayLike = [-10, 20, -30, 40, -50];
522let int8Array: collections.Int8Array = new collections.Int8Array(arrayLike);
523int8Array.some((element: number) => element < 0); // true
524```
525
526## every
527every(predicate: TypedArrayPredicateFn\<number, Int8Array>): boolean
528
529测试ArkTS Int8Array中的所有元素是否满足指定条件。
530
531**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
532
533**系统能力:** SystemCapability.Utils.Lang
534
535**参数:**
536
537| 参数名  | 类型   | 必填 | 说明                                                    |
538| ------- | ------ | ---- | ----------------------------------------------------- |
539| predicate | [TypedArrayPredicateFn](arkts-apis-arkts-collections-Types.md#typedarraypredicatefn)\<number, Int8Array> | 是 | 用于测试的断言函数。|
540
541**返回值:**
542
543| 类型         | 说明      |
544| ------------ | --------- |
545| boolean | 如果所有元素都满足指定条件则返回true,否则返回false。|
546
547**错误码:**
548
549以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
550
551| 错误码ID | 错误信息                                          |
552| -------- | ------------------------------------------------- |
553| 401      | Parameter error.                  |
554| 10200011 | The every method cannot be bound. |
555| 10200201 | Concurrent modification error. |
556
557**示例:**
558
559```ts
560let arrayLike = [-10, 20, -30, 40, -50];
561let int8Array: collections.Int8Array = new collections.Int8Array(arrayLike);
562int8Array.every((element: number) => element > 0);  // false
563```
564
565## fill
566fill(value: number, start?: number, end?: number): Int8Array
567
568使用特定值填充ArkTS Int8Array指定范围的全部元素。
569
570**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
571
572**系统能力:** SystemCapability.Utils.Lang
573
574**参数:**
575
576| 参数名  | 类型   | 必填 | 说明                                                      |
577| ------- | ------ | ---- | --------------------------------------------------------|
578| value | number | 是 | 待填充的值。|
579| start | number | 否 | 开始填充的索引,如果`start < 0`,则会从`start + Int8Array.length`位置开始。默认值为0。|
580| end | number | 否 | 结束填充的索引(不包括该元素),如果`end < 0`,则会到`end + Int8Array.length`位置结束。默认为ArkTS Int8Array的长度。|
581
582**返回值:**
583
584| 类型         | 说明      |
585| ------------ | --------- |
586| Int8Array | 填充后的Int8Array。|
587
588**错误码:**
589
590以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
591
592| 错误码ID | 错误信息                                          |
593| -------- | ------------------------------------------------- |
594| 401      | Parameter error.                 |
595| 10200011 | The fill method cannot be bound. |
596| 10200201 | Concurrent modification error. |
597
598**示例:**
599
600```ts
601let arrayLike = [1, 2, 3];
602new collections.Int8Array(arrayLike).fill(4); // Int8Array [4, 4, 4]
603new collections.Int8Array(arrayLike).fill(4, 1); // Int8Array [1, 4, 4]
604new collections.Int8Array(arrayLike).fill(4, 1, 2); // Int8Array [1, 4, 3]
605```
606
607## filter
608filter(predicate: TypedArrayPredicateFn\<number, Int8Array>): Int8Array
609
610返回一个新ArkTS Int8Array,其包含满足指定条件的所有元素。
611
612**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
613
614**系统能力:** SystemCapability.Utils.Lang
615
616**参数:**
617
618| 参数名  | 类型   | 必填 | 说明                                                    |
619| ------- | ------ | ---- | ------------------------------------------------------ |
620| predicate | [TypedArrayPredicateFn](arkts-apis-arkts-collections-Types.md#typedarraypredicatefn)\<number, Int8Array> | 是 | 用于元素过滤的断言函数。 |
621
622**返回值:**
623
624| 类型         | 说明      |
625| ------------ | --------- |
626| Int8Array| 过滤后的ArkTS Int8Array对象。|
627
628**错误码:**
629
630以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
631
632| 错误码ID | 错误信息                                          |
633| -------- | ------------------------------------------------- |
634| 401      | Parameter error.                   |
635| 10200011 | The filter method cannot be bound. |
636| 10200201 | Concurrent modification error. |
637
638**示例:**
639
640```ts
641let array: collections.Int8Array = collections.Int8Array.from([0, 1, 2, 3, 4]);
642let filtered: collections.Int8Array = array.filter((element: number) => element % 2 == 0);
643// Int8Array [0, 2, 4]
644```
645
646## find
647find(predicate: TypedArrayPredicateFn\<number, Int8Array>): number | undefined
648
649返回ArkTS Int8Array中第一个满足指定条件的元素的值,如果所有元素都不满足,则返回undefined。
650
651**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
652
653**系统能力:** SystemCapability.Utils.Lang
654
655**参数:**
656
657| 参数名  | 类型   | 必填 | 说明                                                         |
658| ------- | ------ | ---- | ------------------------------------------------------------ |
659| predicate | [TypedArrayPredicateFn](arkts-apis-arkts-collections-Types.md#typedarraypredicatefn)\<number, Int8Array> | 是 | 用于元素查找的断言函数。|
660
661**返回值:**
662
663| 类型         | 说明      |
664| ------------ | --------- |
665|  number \| undefined | 第一个满足条件的元素的值;如果所有元素都不满足条件,则返回undefined。|
666
667**错误码:**
668
669以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
670
671| 错误码ID | 错误信息                                          |
672| -------- | ------------------------------------------------- |
673| 401      | Parameter error.                 |
674| 10200011 | The find method cannot be bound. |
675| 10200201 | Concurrent modification error. |
676
677**示例:**
678
679```ts
680let array: collections.Int8Array = collections.Int8Array.from([0, 1, 2, 3, 4]);
681array.find((element: number) => element > 2); // 3
682array.find((element: number) => element > 4); // undefined
683```
684
685## findIndex
686findIndex(predicate: TypedArrayPredicateFn\<number, Int8Array>): number
687
688返回ArkTS Int8Array中第一个满足指定条件的元素索引,如果所有元素都不满足,则返回-1。
689
690**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
691
692**系统能力:** SystemCapability.Utils.Lang
693
694**参数:**
695
696| 参数名  | 类型   | 必填 | 说明                                                         |
697| ------- | ------ | ---- | ------------------------------------------------------------ |
698| predicate | [TypedArrayPredicateFn](arkts-apis-arkts-collections-Types.md#typedarraypredicatefn)\<number, Int8Array> | 是 | 用于元素查找的断言函数。|
699
700**返回值:**
701
702| 类型         | 说明      |
703| ------------ | --------- |
704| number | 第一个满足条件的元素索引;如果所有元素都不满足条件,则返回-1。|
705
706**错误码:**
707
708以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
709
710| 错误码ID | 错误信息                                          |
711| -------- | ------------------------------------------------- |
712| 401      | Parameter error.                      |
713| 10200011 | The findIndex method cannot be bound. |
714| 10200201 | Concurrent modification error.  |
715
716**示例:**
717
718```ts
719const array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
720let foundIndex: number = array.findIndex((element: number) => element % 2 === 0); // 1
721```
722
723## forEach
724forEach(callbackFn: TypedArrayForEachCallback\<number, Int8Array>): void
725
726对ArkTS Int8Array中的每个元素执行提供的回调函数。
727
728**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
729
730**系统能力:** SystemCapability.Utils.Lang
731
732**参数:**
733
734| 参数名  | 类型   | 必填 | 说明                                                         |
735| ------- | ------ | ---- | ------------------------------------------------------------ |
736| callbackFn | [TypedArrayForEachCallback](arkts-apis-arkts-collections-Types.md#typedarrayforeachcallback)\<number, Int8Array> | 是 | 用于对每个元素执行的回调函数。|
737
738
739**错误码:**
740
741以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
742
743| 错误码ID | 错误信息                                          |
744| -------- | ------------------------------------------------- |
745| 401      | Parameter error.                    |
746| 10200011 | The forEach method cannot be bound. |
747| 10200201 | Concurrent modification error. |
748
749**示例:**
750
751```ts
752let int8Array: collections.Int8Array = collections.Int8Array.from([1, 2, 3]);
753int8Array.forEach((value: number, index: number, array: collections.Int8Array) => {
754  console.info(`Element ${value} at index ${index}`);
755});
756```
757
758## indexOf
759indexOf(searchElement: number, fromIndex?: number): number
760
761返回在ArkTS Int8Array中给定元素的第一个索引,如果不存在,则返回-1。
762
763**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
764
765**系统能力:** SystemCapability.Utils.Lang
766
767**参数:**
768
769| 参数名        | 类型   | 必填 | 说明                        |
770| ------------- | ------ | ---- | ---------------------------|
771| searchElement | number | 是   | 待索引的值。                |
772| fromIndex     | number | 否   | 搜索的起始下标。默认值为0。如果下标大于等于ArkTS Int8Array的长度,则返回-1。如果提供的下标值是负数,则被当做距离数组尾部的偏移,从前到后搜索。 |
773
774**返回值:**
775
776| 类型         | 说明      |
777| ------------ | --------- |
778| number | 数组中元素的第一个索引;没有找到,则返回-1。 |
779
780**错误码:**
781
782以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
783
784| 错误码ID | 错误信息                                          |
785| -------- | ------------------------------------------------- |
786| 401      | Parameter error.                    |
787| 10200011 | The indexOf method cannot be bound. |
788| 10200201 | Concurrent modification error.                |
789
790**示例:**
791
792```ts
793let array: collections.Int8Array = collections.Int8Array.from([3, 5, 9]);
794array.indexOf(3); // 0
795array.indexOf(7); // -1
796array.indexOf(9, 2); // 2
797array.indexOf(9, -2); // 2
798```
799
800## lastIndexOf<sup>18+</sup>
801
802lastIndexOf(searchElement: number, fromIndex?: number): number
803
804返回ArkTS Int8Array实例中最后一次出现searchElement的索引,如果对象不包含,则为-1。
805
806**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
807
808**系统能力:** SystemCapability.Utils.Lang
809
810**参数:**
811
812| 参数名           | 类型     | 必填  | 说明                                                                                |
813| ------------- | ------ | --- | --------------------------------------------------------------------------------- |
814| searchElement | number | 是   | 待索引的值。                                                                            |
815| fromIndex     | number | 否   | 搜索的起始下标。默认值为0。如果下标大于等于ArkTS Int8Array的长度,则返回-1。如果提供的下标值是负数,则被当做距离数组尾部的偏移,从后到前搜索。 |
816
817**返回值:**
818
819| 类型     | 说明                      |
820| ------ | ----------------------- |
821| number | 数组中给定元素的最后一个索引;没有找到,则返回-1。 |
822
823**错误码:**
824
825以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
826
827| 错误码ID    | 错误信息                                    |
828| -------- | --------------------------------------- |
829| 10200011 | The lastIndexOf method cannot be bound. |
830| 10200201 | Concurrent modification error. |
831
832**示例:**
833
834```ts
835let array: collections.Int8Array = collections.Int8Array.from([3, 5, 9]);
836console.info(array.lastIndexOf(3) + ''); // 预期输出:0
837console.info(array.lastIndexOf(7) + ''); // 预期输出:-1
838console.info(array.lastIndexOf(9, 2) + ''); // 预期输出:2
839console.info(array.lastIndexOf(9, -2) + ''); // 预期输出:-1
840```
841
842## join
843join(separator?: string): string
844
845将ArkTS Int8Array的所有元素拼接成一个字符串,元素之间使用指定的分隔符分隔。
846
847**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
848
849**系统能力:** SystemCapability.Utils.Lang
850
851**参数:**
852
853| 参数名    | 类型   | 必填 | 说明                                                 |
854| --------- | ------ | ---- | ---------------------------------------------------- |
855| separator | string | 否   | 分隔字符串。如果省略,则使用逗号分隔。 |
856
857**返回值:**
858
859| 类型         | 说明      |
860| ------------ | --------- |
861| string | 包含所有元素拼接成的字符串。如果ArkTS Int8Array为空,则返回空字符串。|
862
863**错误码:**
864
865以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
866
867| 错误码ID | 错误信息                                          |
868| -------- | ------------------------------------------------- |
869| 401      | Parameter error.                 |
870| 10200011 | The join method cannot be bound. |
871| 10200201 | Concurrent modification error.  |
872
873**示例:**
874
875```ts
876let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
877let joined: string = array.join('-'); // "1-2-3-4-5"
878```
879
880## map
881map(callbackFn: TypedArrayMapCallback\<number, Int8Array>): Int8Array
882
883对ArkTS Int8Array中的每个元素应用指定的回调函数,并使用结果创建一个新的ArkTS Int8Array对象。
884
885**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
886
887**系统能力:** SystemCapability.Utils.Lang
888
889**参数:**
890| 参数名    | 类型   | 必填 | 说明                                                 |
891| --------- | ------ | ---- | ---------------------------------------------------- |
892| callbackFn | [TypedArrayMapCallback](arkts-apis-arkts-collections-Types.md#typedarraymapcallback)\<number, Int8Array> | 是  | 回调函数。 |
893
894
895**返回值:**
896
897| 类型         | 说明      |
898| ------------ | --------- |
899| Int8Array | 新ArkTS Int8Array对象。|
900
901**错误码:**
902
903以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
904
905| 错误码ID | 错误信息                                          |
906| -------- | ------------------------------------------------- |
907| 401      | Parameter error.                |
908| 10200011 | The map method cannot be bound. |
909| 10200201 | Concurrent modification error. |
910
911**示例:**
912
913```ts
914let array: collections.Int8Array = collections.Int8Array.from([25, 36, 49]);
915const mapped: collections.Int8Array = array.map(Math.sqrt); // Int8Array [5, 6 ,7]
916```
917
918## reduce
919reduce(callbackFn: TypedArrayReduceCallback\<number, number, Int8Array>): number
920
921对ArkTS Int8Array中的每个元素执行归约函数,并返回最终的归约结果。
922
923**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
924
925**系统能力:** SystemCapability.Utils.Lang
926
927**参数:**
928| 参数名     | 类型   | 必填 |  说明     |
929| ---------- | ---------------------- | ---- | ------------------------------------------------------------ |
930| callbackFn | [TypedArrayReduceCallback](arkts-apis-arkts-collections-Types.md#typedarrayreducecallback)\<number, number, Int8Array> | 是 | 归约函数。 |
931
932**返回值:**
933
934| 类型         | 说明      |
935| ------------ | --------- |
936| number | 由归约函数返回的结果。|
937
938**错误码:**
939
940以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
941
942| 错误码ID |                      错误信息                     |
943| -------- | ------------------------------------------------ |
944| 401      | Parameter error.                                 |
945| 10200011 | The reduce method cannot be bound.               |
946| 10200201 | Concurrent modification error.               |
947
948**示例:**
949
950```ts
951let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
952let reducedValue: number = array.reduce((accumulator: number, value: number) => accumulator + value);
953// reducedValue == 15
954```
955
956## reduceRight<sup>18+</sup>
957
958reduceRight(callbackFn: TypedArrayReduceCallback\<number, number, Int8Array>): number
959
960反向遍历ArkTS Int8Array,对ArkTS Int8Array中的每个元素执行归约函数,并返回最终的归约结果。
961
962**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
963
964**系统能力:** SystemCapability.Utils.Lang
965
966**参数:**
967| 参数名     | 类型   | 必填 |  说明     |
968| ---------- | ---------------------- | ---- | ------------------------------------------------------------ |
969| callbackFn | [TypedArrayReduceCallback](arkts-apis-arkts-collections-Types.md#typedarrayreducecallback)\<number, number, Int8Array> | 是 | 归约函数。 |
970
971**返回值:**
972
973| 类型     | 说明          |
974| ------ | ----------- |
975| number | 由归约函数返回的结果。 |
976
977**错误码:**
978
979以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
980
981| 错误码ID    | 错误信息                                    |
982| -------- | --------------------------------------- |
983| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
984| 10200011 | The reduceRight method cannot be bound. |
985| 10200201 | Concurrent modification error.      |
986
987**示例:**
988
989```ts
990let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
991let reducedValue: number = array.reduceRight((accumulator: number, value: number) => accumulator + value);
992console.info(reducedValue + ''); // 预期输出: 15
993```
994
995## reduce
996reduce(callbackFn: TypedArrayReduceCallback\<number, number, Int8Array>, initialValue: number): number
997
998对ArkTS Int8Array中的每个元素执行归约函数,且接收一个初始值作为归约函数首次调用的参数,并返回最终的归约结果。
999
1000**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1001
1002**系统能力:** SystemCapability.Utils.Lang
1003
1004**参数:**
1005| 参数名    | 类型   | 必填 | 说明                                                 |
1006| --------- | ------ | ---- | --------------------------------------------------- |
1007| callbackFn | [TypedArrayReduceCallback](arkts-apis-arkts-collections-Types.md#typedarrayreducecallback)\<number, number, Int8Array> | 是  | 归约函数。 |
1008| initialValue | number | 是  | 初始值。 |
1009
1010
1011**返回值:**
1012
1013| 类型         | 说明      |
1014| ------------ | --------- |
1015| number | 由归约函数返回的结果。 |
1016
1017**错误码:**
1018
1019以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1020
1021| 错误码ID | 错误信息                                          |
1022| -------- | ------------------------------------------------- |
1023| 401      | Parameter error.                   |
1024| 10200011 | The reduce method cannot be bound. |
1025| 10200201 | Concurrent modification error. |
1026
1027**示例:**
1028
1029```ts
1030let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1031let reducedValue: number = array.reduce((accumulator: number, value: number) => accumulator + value, 1);
1032// reducedValue == 16
1033```
1034
1035## reduceRight<sup>18+</sup>
1036
1037reduceRight\<U = number>(callbackFn: TypedArrayReduceCallback\<U, number, Int8Array>, initialValue: U): U
1038
1039反向遍历ArkTS Int8Array,对ArkTS Int8Array中的每个元素执行归约函数,且接收一个初始值作为归约函数首次调用的参数,并返回最终的归约结果。
1040
1041**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
1042
1043**系统能力:** SystemCapability.Utils.Lang
1044
1045**参数:**
1046| 参数名    | 类型   | 必填 | 说明                                                 |
1047| --------- | ------ | ---- | --------------------------------------------------- |
1048| callbackFn | [TypedArrayReduceCallback](arkts-apis-arkts-collections-Types.md#typedarrayreducecallback)\<U, number, Int8Array> | 是  | 归约函数。 |
1049| initialValue | U | 是  | 初始值。 |
1050
1051**返回值:**
1052
1053| 类型     | 说明          |
1054| ------ | ----------- |
1055| U | 由归约函数返回的结果。 |
1056
1057**错误码:**
1058
1059以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1060
1061| 错误码ID    | 错误信息                                    |
1062| -------- | --------------------------------------- |
1063| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
1064| 10200011 | The reduceRight method cannot be bound. |
1065| 10200201 | Concurrent modification error.      |
1066
1067**示例:**
1068
1069```ts
1070let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1071let reducedValue: number = array.reduceRight((accumulator: number, value: number) => accumulator + value, 1);
1072console.info(reducedValue + ''); // 预期输出: 16
1073```
1074
1075## reduce
1076reduce\<U>(callbackFn: TypedArrayReduceCallback\<U, number, Int8Array>, initialValue: U): U
1077
1078对ArkTS Int8Array中的每个元素执行归约函数,且接收一个初始值作为归约函数首次调用的参数,并返回最终的归约结果。
1079
1080**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1081
1082**系统能力:** SystemCapability.Utils.Lang
1083
1084**参数:**
1085
1086| 参数名    | 类型   | 必填 | 说明                                                 |
1087| --------- | ------ | ---- | ---------------------------------------------------- |
1088| callbackFn | [TypedArrayReduceCallback](arkts-apis-arkts-collections-Types.md#typedarrayreducecallback)\<U, number, Int8Array> | 是  | 归约函数。 |
1089| initialValue | U | 是  | 初始值。 |
1090
1091**返回值:**
1092
1093| 类型         | 说明      |
1094| ------------ | --------- |
1095|  U | 由归约函数返回的结果。 |
1096
1097**错误码:**
1098
1099以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1100
1101| 错误码ID | 错误信息                                          |
1102| -------- | ------------------------------------------------- |
1103| 401      | Parameter error.                   |
1104| 10200011 | The reduce method cannot be bound. |
1105| 10200201 | Concurrent modification error.  |
1106
1107**示例:**
1108
1109```ts
1110let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1111let reducedValue: string = array.reduce<string>((accumulator: string, value: number) => accumulator + value, "initialValue");
1112// reducedValue == initialValue12345
1113```
1114
1115## reverse
1116reverse(): Int8Array
1117
1118反转ArkTS Int8Array。
1119
1120**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1121
1122**系统能力:** SystemCapability.Utils.Lang
1123
1124**返回值:**
1125
1126| 类型         | 说明      |
1127| ------------ | --------- |
1128| Int8Array   | 反转后的ArkTS Int8Array对象。|
1129
1130**错误码:**
1131
1132以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
1133
1134| 错误码ID | 错误信息                                          |
1135| -------- | ------------------------------------------------- |
1136| 10200011 | The reverse method cannot be bound. |
1137| 10200201 | Concurrent modification error.   |
1138
1139**示例:**
1140
1141```ts
1142let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1143let reversed: collections.Int8Array = array.reverse(); // Int8Array [5, 4, 3, 2, 1]
1144```
1145
1146## set
1147set(array: ArrayLike\<number>, offset?: number): void
1148
1149将传入的ArrayLike元素依次写入到指定的起始位置。
1150
1151**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1152
1153**系统能力:** SystemCapability.Utils.Lang
1154
1155**参数:**
1156| 参数名    | 类型   | 必填 | 说明                                                 |
1157| --------- | ------ | ---- | ---------------------------------------------------- |
1158| array | ArrayLike\<number> | 是  | 用于设置的ArrayLike对象。|
1159| offset | number | 否  | 写入的起始位置。默认为0。|
1160
1161**错误码:**
1162
1163以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1164
1165| 错误码ID | 错误信息                                          |
1166| -------- | ------------------------------------------------- |
1167| 401      | Parameter error.                |
1168| 10200011 | The set method cannot be bound. |
1169| 10200201 | Concurrent modification error.  |
1170
1171**示例:**
1172
1173```ts
1174let buffer: collections.ArrayBuffer = new collections.ArrayBuffer(8);
1175let array: collections.Int8Array = new collections.Int8Array(buffer);
1176array.set([1, 2, 3], 3); // Int8Array [0, 0, 0, 1, 2, 3, 0, 0]
1177```
1178
1179## slice
1180slice(start?: number, end?: number): Int8Array
1181
1182返回一个新的ArkTS Int8Array对象,其包含原ArkTS Int8Array指定范围的内容。
1183
1184**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1185
1186**系统能力:** SystemCapability.Utils.Lang
1187
1188**参数:**
1189
1190| 参数名 | 类型   | 必填 | 说明                                                   |
1191| ------ | ------ | ---- | -----------------------------------------------------|
1192| start  | number | 否   | 开始索引,如果`start < 0`,则会从`start + Int8Array.length`位置开始。默认为0。 |
1193| end    | number | 否   | 结束索引(不包括该元素),如果`end < 0`,则会到`end + Int8Array.length`位置结束。默认为ArkTS Int8Array的长度。|
1194
1195**返回值:**
1196
1197| 类型         | 说明      |
1198| ------------ | --------- |
1199| Int8Array | 新的ArkTS Int8Array对象。 |
1200
1201**错误码:**
1202
1203以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1204
1205| 错误码ID | 错误信息                                          |
1206| -------- | ------------------------------------------------- |
1207| 401      | Parameter error.                  |
1208| 10200011 | The slice method cannot be bound. |
1209| 10200201 | Concurrent modification error. |
1210
1211**示例:**
1212
1213```ts
1214let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1215array.slice(); // Int8Array [1, 2, 3, 4, 5]
1216array.slice(1, 3); // Int8Array [2, 3]
1217array.slice(-2); // Int8Array [4, 5]
1218```
1219
1220## sort
1221sort(compareFn?: TypedArrayCompareFn\<number>): Int8Array
1222
1223对ArkTS Int8Array进行排序,并返回排序后的ArkTS Int8Array对象。
1224
1225**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1226
1227**系统能力:** SystemCapability.Utils.Lang
1228
1229**参数:**
1230
1231| 参数名    | 类型                   | 必填 | 说明                                       |
1232| --------- | ---------------------- | ---- | ------------------------------------------ |
1233| compareFn | [TypedArrayCompareFn](arkts-apis-arkts-collections-Types.md#typedarraycomparefn)\<number> | 否   | 用于确定元素顺序的函数。默认使用升序排序。 |
1234
1235**返回值:**
1236
1237| 类型         | 说明      |
1238| ------------ | --------- |
1239| Int8Array | 排序后的ArkTS Int8Array对象。|
1240
1241**错误码:**
1242
1243以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1244
1245| 错误码ID | 错误信息                                    |
1246| -------- | ------------------------------------------ |
1247| 401      | Parameter error.                 |
1248| 10200011 | The sort method cannot be bound. |
1249| 10200201 | Concurrent modification error.         |
1250
1251**示例:**
1252
1253```ts
1254let array: collections.Int8Array = collections.Int8Array.from([1, 3, 5, 4, 2]);
1255array.sort(); // Int8Array [1, 2, 3, 4, 5]
1256array.sort((a: number, b: number) => a - b); // Int8Array [1, 2, 3, 4, 5]
1257array.sort((a: number, b: number) => b - a); // Int8Array [5, 4, 3, 2, 1]
1258```
1259
1260## subarray
1261subarray(begin?: number, end?: number): Int8Array
1262
1263从指定的位置截取数组,返回一个新的、基于相同ArkTS ArrayBuffer的ArkTS Int8Array对象。
1264
1265**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1266
1267**系统能力:** SystemCapability.Utils.Lang
1268
1269**参数:**
1270
1271| 参数名 | 类型   | 必填 | 说明                                                |
1272| ------ | ------ | ---- | ------------------------------------------------- |
1273| begin  | number | 否   | 开始索引,如果`begin < 0`,则会从`begin + Int8Array.length`位置开始。默认值为0。 |
1274| end    | number | 否   | 结束索引(不包括该元素),如果`end < 0`,则会到`end + Int8Array.length`位置结束。默认为ArkTS Int8Array的长度。 |
1275
1276**返回值:**
1277
1278| 类型         | 说明      |
1279| ------------ | --------- |
1280| Int8Array | 新的ArkTS Int8Array对象。|
1281
1282**错误码:**
1283
1284以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1285
1286| 错误码ID |            错误信息                               |
1287| -------- | -------------------------------------------------|
1288| 401      | Parameter error.                                 |
1289| 10200011 | The subarray method cannot be bound.             |
1290| 10200201 | Concurrent modification error.               |
1291
1292**示例:**
1293
1294```ts
1295let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1296let subArray: collections.Int8Array = array.subarray(); // Int8Array [1, 2, 3, 4, 5]
1297subArray.set([10, 20, 30]); // Int8Array [10, 20, 30, 4, 5]
1298```
1299
1300## at
1301at(index: number): number | undefined
1302
1303返回指定下标的元素,如果不存在,则返回undefined。
1304
1305**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1306
1307**系统能力:** SystemCapability.Utils.Lang
1308
1309**参数:**
1310| 参数名 | 类型   | 必填 | 说明                                                         |
1311| ------ | ------ | ---- | ------------------------------------------------------------ |
1312| index  | number | 是   | 要返回的Array元素的索引(从零开始),取值为整数。如果`index < 0`,则会访问`index + Int8Array.length`位置的元素。|
1313
1314**返回值:**
1315
1316| 类型         | 说明      |
1317| ------------ | --------- |
1318| number \| undefined| 指定下标的元素;如果不存在,则返回undefined。|
1319
1320**错误码:**
1321
1322以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1323
1324| 错误码ID |                       错误信息                    |
1325| -------- | ------------------------------------------------ |
1326| 401      | Parameter error.                                 |
1327| 10200011 | The at method cannot be bound.                   |
1328| 10200201 | Concurrent modification error.               |
1329
1330**示例:**
1331
1332```ts
1333let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1334console.info("element: " + array.at(2));  // element: 3
1335console.info("element: " + array.at(-1)); // element: 5
1336console.info("element: " + array.at(6));  // element: undefined
1337```
1338
1339## includes
1340includes(searchElement: number, fromIndex?: number): boolean
1341
1342判断ArkTS Int8Array是否包含特定元素。
1343
1344**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1345
1346**系统能力:** SystemCapability.Utils.Lang
1347
1348**参数:**
1349| 参数名 | 类型   | 必填 | 说明                                      |
1350| ------ | ------ | ---- | --------------------------------------- |
1351| searchElement  | number | 是   | 待搜索的元素。 |
1352| fromIndex  | number | 否  | 开始搜索的索引,如果`fromIndex < 0`,则会从`fromIndex + Int8Array.length`位置开始。默认值为0。|
1353
1354**返回值:**
1355
1356| 类型    | 说明                                                        |
1357| ------- | ---------------------------------------------------------- |
1358| boolean | 如果ArkTS Int8Array包含指定的元素,则返回true;否则返回false。|
1359
1360
1361**错误码:**
1362
1363以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[语言基础类库错误码](errorcode-utils.md)。
1364
1365| 错误码ID | 错误信息                                          |
1366| -------- | ------------------------------------------------- |
1367| 401      | Parameter error.                     |
1368| 10200011 | The includes method cannot be bound. |
1369| 10200201 | Concurrent modification error. |
1370
1371**示例:**
1372
1373```ts
1374let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3]);
1375console.info("includes: " + array.includes(2));    // includes: true
1376console.info("includes: " + array.includes(4));    // includes: false
1377console.info("includes: " + array.includes(3, 3)); // includes: false
1378```
1379
1380## entries
1381entries(): IterableIterator\<[number, number]>
1382
1383返回一个新的迭代器对象,该对象包含ArkTS Int8Array中每个元素的键值对。
1384
1385**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1386
1387**系统能力:** SystemCapability.Utils.Lang
1388
1389**返回值:**
1390
1391| 类型         | 说明      |
1392| ------------ | --------- |
1393| IterableIterator\<[number, number]>| 新的迭代器对象。 |
1394
1395**错误码:**
1396
1397以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
1398
1399| 错误码ID | 错误信息                                          |
1400| -------- | ------------------------------------------------- |
1401| 10200011 | The entries method cannot be bound. |
1402| 10200201 | Concurrent modification error. |
1403
1404**示例:**
1405
1406```ts
1407let array: collections.Int8Array = collections.Int8Array.from([11, 22, 33]);
1408let iterator: IterableIterator<[number, number]> = array.entries();
1409console.info("value: " + iterator.next().value); // value: 0,11
1410console.info("value: " + iterator.next().value); // value: 1,22
1411console.info("value: " + iterator.next().value); // value: 2,33
1412```
1413
1414## keys
1415keys(): IterableIterator\<number>
1416
1417返回一个新的迭代器对象,该对象包含ArkTS Int8Array中每个元素的键(下标)。
1418
1419**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1420
1421**系统能力:** SystemCapability.Utils.Lang
1422
1423**返回值:**
1424
1425| 类型         | 说明      |
1426| ------------ | --------- |
1427| IterableIterator\<number> | 新的迭代器对象。|
1428
1429**错误码:**
1430
1431以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
1432
1433| 错误码ID | 错误信息                                          |
1434| -------- | ------------------------------------------------- |
1435| 10200011 | The keys method cannot be bound. |
1436| 10200201 | Concurrent modification error. |
1437
1438**示例:**
1439
1440```ts
1441let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1442let iterator: IterableIterator<number> = array.keys();
1443for (const key of iterator) {
1444  console.info("" + key); // 依次输出 0,1,2,3,4
1445}
1446```
1447
1448## values
1449values(): IterableIterator\<number>
1450
1451返回一个新的迭代器对象,该对象包含ArkTS Int8Array中每个元素的值。
1452
1453**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1454
1455**系统能力:** SystemCapability.Utils.Lang
1456
1457**返回值:**
1458
1459| 类型         | 说明      |
1460| ------------ | --------- |
1461| IterableIterator\<number> | 新的迭代器对象。|
1462
1463**错误码:**
1464
1465以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
1466
1467| 错误码ID | 错误信息                                          |
1468| -------- | ------------------------------------------------- |
1469| 10200011 | The values method cannot be bound. |
1470| 10200201 | Concurrent modification error.  |
1471
1472**示例:**
1473
1474```ts
1475let array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5]);
1476let iterator: IterableIterator<number> = array.values();
1477for (const value of iterator) {
1478  console.info("" + value); // 依次输出 1,2,3,4,5
1479}
1480```
1481
1482## [Symbol.iterator]
1483
1484[Symbol.iterator]\(): IterableIterator&lt;number&gt;
1485
1486返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。
1487
1488> **说明:**
1489>
1490> 本接口不支持在.ets文件中使用。
1491
1492**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1493
1494**系统能力:** SystemCapability.Utils.Lang
1495
1496**返回值:**
1497
1498| 类型                      | 说明             |
1499| ------------------------- | ---------------- |
1500| IterableIterator&lt;number&gt; | 返回一个迭代器。 |
1501
1502**错误码:**
1503
1504以下错误码的详细介绍请参见[语言基础类库错误码](errorcode-utils.md)。
1505
1506| 错误码ID | 错误信息                                    |
1507| -------- | ------------------------------------------- |
1508| 10200011 | The Symbol.iterator method cannot be bound. |
1509
1510**示例:**
1511
1512```ts
1513let int8Array: collections.Int8Array = collections.Int8Array.from([1, 2, 3, 4, 5, 6]);
1514
1515for (let item of int8Array) {
1516  console.info(`value : ${item}`);
1517}
1518```
1519
1520## [index: number]
1521
1522&#91;index: number&#93;: number
1523
1524返回Int8Array指定索引位置的元素。
1525
1526**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1527
1528**系统能力:** SystemCapability.Utils.Lang
1529
1530**参数:**
1531
1532| 参数名    | 类型   | 必填 | 说明                     |
1533| ----- | ------ | ---- | -------------------------- |
1534| index | number | 是   | 所需代码单元的从零开始的索引。|
1535
1536**返回值:**
1537
1538| 类型   | 说明                 |
1539| ----- | ---------------------|
1540| number | 返回number数据类型。 |
1541
1542**示例:**
1543
1544```ts
1545let int8Array = collections.Int8Array.from([1, 2, 4]);
1546console.info("Element at index 1: ", int8Array[1]);
1547```
1548