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"