跳到主要内容

Array 数组类

Array 是 Alia 的内置数组类,用于存储和操作有序的元素集合。

创建数组​

字面量形式​

const arr1 = [1, 2, 3, 4, 5]
const arr2 = ['a', 'b', 'c']
const arr3 = [1, 'hello', true]

构造器形式​

const arr4 = new Array [1, 2, 3]

实例方法​

length​

length 是数组的长度属性,返回数值。

const arr = [1, 2, 3, 4, 5]
print arr.length ~ 输出 5

push​

push 在数组末尾添加元素,返回表示新长度的数值。

const arr = [1, 2, 3]
const len = arr.push 4
print len ~ 输出 4
print arr ~ 输出 Array [Number 1, Number 2, Number 3, Number 4]

pop​

pop 移除并返回数组末尾的元素。无参调用采用 call 形式。

const arr = [1, 2, 3]
const last = call arr.pop
print last ~ 输出 3
print arr ~ 输出 Array [Number 1, Number 2]

join​

join 将数组元素连接成字符串。分隔符为单个参数,缺省分隔符为 ',',缺省形式采用 call 调用。

const arr = ['a', 'b', 'c']
print arr.join '-' ~ 输出 "a-b-c"
print call arr.join ~ 输出 "a,b,c"

slice​

slice 提取数组的一部分并返回新数组。双参数形式以辅助关键字 to 分隔起止位置,单参数形式仅给定起始位置。

const arr = [1, 2, 3, 4, 5]
print arr.slice 1 to 4 ~ 输出 Array [Number 2, Number 3, Number 4]
print arr.slice 2 ~ 输出 Array [Number 3, Number 4, Number 5]

map​

map 接收单个 Alias 回调并返回新数组,签名为 alias <Value fn> -> Array。

find​

find 接收单个 Alias 回调并返回查找到的值,签名为 alias <Value fn> -> Value。

indexOf​

indexOf 接收单个待查元素并返回数值索引。未命中返回 -1。

const arr = [1, 2, 3, 2, 1]
print arr.indexOf 9 ~ 输出 -1

includes​

includes 接收单个待查元素并返回布尔值。缺席元素对应 false。

const arr = [1, 2, 3]
print arr.includes 5 ~ 输出 false

toObject​

toObject 返回以索引为键的 Object。无参调用采用 call 形式。

const arr = [1, 2]
const obj = call arr.toObject

toSheet​

toSheet 返回以该数组为单行数据的 Sheet。无参调用采用 call 形式。

const arr = [1, 2]
const sheet = call arr.toSheet

toString​

toString 返回数组的描述字符串,与 toDescription 结果一致。无参调用采用 call 形式。

const arr = [1, 2, 3]
print call arr.toString ~ 输出 "Array [Number Number 1, Number Number 2, Number Number 3]"

toDescription​

toDescription 返回数组的描述字符串,空数组对应 "Array []"。无参调用采用 call 形式。

const empty = []
print call empty.toDescription ~ 输出 "Array []"

toCode​

toCode 返回数组的代码形式字符串。无参调用采用 call 形式。

const arr = [1, 2, 3]
print call arr.toCode ~ 输出 "[1, 2, 3]"

valueOf​

valueOf 返回数组的底层存储。无参调用采用 call 形式。

const arr = [1, 2, 3]
print call arr.valueOf ~ 输出 1,2,3

数组访问​

数组元素按索引访问:

const arr = ['a', 'b', 'c']
print arr[0] ~ 输出 "a"
print arr[1] ~ 输出 "b"
print arr[2] ~ 输出 "c"

数组遍历​

索引遍历采用四段式 for 循环:

const arr = ['a', 'b', 'c']
for { let i = 0 } i < arr.length { i ++ } { print arr[i] }

示例代码​

~ 数组综合示例

~ 1. 创建数组
const numbers = [1, 2, 3, 4, 5]
const strings = ['hello', 'world']

~ 2. 获取长度
print numbers.length ~ 输出 5

~ 3. 添加元素
const len = numbers.push 6
print len ~ 输出 6

~ 4. 移除元素
const last = call numbers.pop
print last ~ 输出 6

~ 5. 数组切片
const sliced = numbers.slice 1 to 4
print sliced ~ 输出 Array [Number 2, Number 3, Number 4]

~ 6. 数组连接
print strings.join '-' ~ 输出 "hello-world"
print call strings.join ~ 输出 "hello,world"

~ 7. 缺席检查
print strings.includes 'Alia' ~ 输出 false
print numbers.indexOf 9 ~ 输出 -1

~ 8. 代码形式
print call numbers.toCode ~ 输出 "[1, 2, 3, 4, 5]"

~ 9. 索引遍历
for { let i = 0 } i < strings.length { i ++ } { print strings[i] }

~ 10. 索引访问
const arr = ['first', 'second', 'third']
print arr[0] ~ 输出 "first"
print arr[arr.length - 1] ~ 输出 "third"

下一步​