R6对LotusScript有一些改进和增强,自那之后。Notes对象的接口时有补充和更新,但语言本身没有变化。那些改进就包括添加诸如ArrayGetIndex、ArrayUnique的实用函数。

但在编程实践中,另一些对数组的操作LotusScript没有提供原生的函数,好在基本上都能自己编写。以下的函数中用到的常数都在lsconst.lss或lserr.lss里定义,在脚本前要附加

%INCLUDE"lsconst.lss"

%INCLUDE"lserr.lss"

推断数组是否包括某个元素。

  1. %REM
  2. Checks if an array contains a value.
  3. The ArrayGetIndex function returns null if the value is not found.
  4. %END REM
  5. Public Function ArrayContains(source As Variant, value As Variant) As Boolean
  6. 'the data type of source is not checked intentionally
  7. ArrayContains=Not IsNull(ArrayGetIndex(source,value))
  8. End Function

LotusScript中的数组最多能够有八维(dimension),以下这个函数利用执行时错误(run-time error)ErrSubscriptOutOfRange获得维数。

  1. 'Returns the number of an array's dimensions
  2. Function ArrayDimension(array As Variant) As Integer
  3. If Not IsArray(array) Then
  4. ArrayDimension=0
  5. Exit Function
  6. End If
  7.  
  8. On Error ErrSubscriptOutOfRange GoTo RESULT
  9. Dim d As Integer, lb As Integer
  10. For d=1 To 9
  11. lb=LBound(array, d)
  12. Next
  13.  
  14. RESULT:
  15. ArrayDimension=d-1
  16. Exit Function
  17. End Function

返回多维数组的大小,即全部元素的个数。

  1. Function ArraySize(array As Variant) As Integer
  2. If Not IsArray(array) Then
  3. ArraySize=0
  4. Exit Function
  5. End If
  6.  
  7. ArraySize=1
  8. Dim d As Integer
  9. d=ArrayDimension(array)
  10. Dim i As Integer
  11. For i=1 To d
  12. ArraySize=ArraySize*(UBound(array, i)-LBound(array,i)+1)
  13. Next
  14. End Function

推断两个数组的“形状”。也就是维数和每一维的上下限是否相同。这个函数在今后比較数组是否相等时实用。

  1. Function ArrayBoundsEquals(a1 As Variant, a2 As Variant) As Boolean
  2. If (Not IsArray(a1)) Or (Not IsArray(a2)) Then
  3. ArrayBoundsEquals=False
  4. Exit Function
  5. End If
  6.  
  7. Dim d1 As Integer, d2 As Integer
  8. d1=ArrayDimension(a1)
  9. d2=ArrayDimension(a2)
  10. If d1<>d2 Then
  11. ArrayBoundsEquals=False
  12. Exit Function
  13. End If
  14.  
  15. Dim d As Integer
  16. For d=1 To d1
  17. If LBound(a1)><LBound(a2) Or UBound(a1)><UBound(a2) Then
  18. ArrayBoundsEquals=False
  19. Exit Function
  20. End If
  21. Next
  22.  
  23. ArrayBoundsEquals=True
  24. End Function

将多维数组转换成一维数组。这个函数相同用于比較两个数组是否相等。

  1. Function ArrayToOneDimension(array As Variant) As Variant
  2. If Not IsArray(array) Then
  3. Call SetValue(ArrayToOneDimension, array)
  4. Exit Function
  5. End If
  6.  
  7. Dim d As Integer
  8. d=ArrayDimension(array)
  9. If d=1 Then
  10. ArrayToOneDimension=array
  11. Exit Function
  12. End If
  13.  
  14. Dim size As Integer
  15. size=ArraySize(array)
  16. Dim result() As Variant
  17. ReDim result(size-1)
  18. Dim i As Integer
  19. ForAll e In array
  20. result(i)=e
  21. i=i+1
  22. End ForAll
  23.  
  24. ArrayToOneDimension=result
  25. End Function

86. LotusScript中的数组函数的更多相关文章

  1. 【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()

    问题描述 算法 Algorithms (第四版)书中,第1章:基础编程模型第15题: 结果: 编写一个静态方法 histogram(), 接受一个整型数组a[] 和一个整数M为参数,并返回一个大小为M ...

  2. javascript中常用数组函数

    1.split方法——通过分隔符,将字符串分割,导出字符数组 常用于:分割IP地址,分割文件路径(上传文件时)等等 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  3. 辛星解读之php中的重点函数第一节之数组函数

    这里我已经写好它的pdf版本号了,比本博客更加适合阅读.首先说一下它在百度网盘的下载地址把:百度网盘下载 ,假设左边连接跪了.能够在浏览器中输入:http://pan.baidu.com/s/1qW5 ...

  4. PHP中获取数组中单列的值

    PHP中获取数组中单列的值如下: 利用PHP中的数组函数 array_column():返回数组中某个单列的值.(PHP 5.5+适用) 语法: array_column(array,column_k ...

  5. Labview学习之路(十三)数组函数

    本文章介绍一下函数选版中的数组函数,一眼看懂没什么特殊地方的就不说了 (一)数组大小 返回I32类型的数或者数组. 什么是I32类型?就是32位有符号整型, 有符号什么意思?就是在32位数据中最高做符 ...

  6. php中的常用数组函数(一)(比较多个数组的差集的函数们 array_diff_assoc() array_diff() array_diff_key() array_diff_ukey() array_diff_uassoc())

    array_diff_assoc($arr1, $arr2, $arr3,... n); 返回:一个$arr1的副本,后续的数组中出现一个键值相同的元素,就在副本中删掉这个元素,最后返回这个副本. 如 ...

  7. PHP中的数组(二)常用数组处理函数

    数组的相关处理函数    一.数组键/值操作有关的函数        1.array_values()   无论是关联的还是索引的返回的都是索引数组 <?php $lamp=array(&quo ...

  8. PHP 中数组函数 isset 效率比 array_key_exists 更高

    PHP 中数组函数 isset 效率比 array_key_exists 更高 PHP 浏览:4194 2014年04月05日 isset 和 array_key_exists 函数都可以用来测试数组 ...

  9. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...

随机推荐

  1. codeforces_C. Maximum Subrectangle

    http://codeforces.com/contest/1060/problem/C 题意: a.b数组长度分别为n.m.矩阵C,Cij=ai*bj.在C中找到一个子矩阵,该子矩阵所有元素和不大于 ...

  2. 使用 reduce 实现数组 map 方法

    //使用 reduce 实现数组 map 方法 const selfMap2 = function (fn, context){ let arr = Array.prototype.slice.cal ...

  3. Less用法注意事项

    (1)引入顺序 引入你的 .less 样式文件的时候要设置 rel 属性值为 “stylesheet/less”: <link rel="stylesheet/less" t ...

  4. idea文件全部变红, 文件全部红色

    idea如果当前project用了版本控制器,其下面新建的所有的项目默认都是加入到版本控制里面,所以项目名称和文件都是红色的,如图: 看起来非常不爽, 那么如何解决呢? File–>Settin ...

  5. 问题:执行[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh 后,namenode未启动

    执行[root@node01 hadoop-2.6.0-cdh5.14.0]# sbin/start-dfs.sh 后,namenode未启动. 解决步骤: 查看/export/servers/had ...

  6. Spring Data Redis整体介绍 (一)

    为什么使用Spring Data Redis 首先Spring Data Redis 是Spring 框架提供的用于操作Redis的客户端. Spring框架是一个全栈Java程序框架,通过DI.AO ...

  7. python3+beautifulSoup4.6抓取某网站小说(一)爬虫初探

    本次学习重点: 1.使用urllib的request进行网页请求,获取当前url整版网页内容 2.对于多级抓取,先想好抓取思路,再动手 3.BeautifulSoup获取html网页中的指定内容 4. ...

  8. 题解 P1967 货车运输

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能 ...

  9. DB2隔离级别

    四.隔离级别与锁 数据库是利用锁和隔离级别来共同处理数据库的并发的.DB2数据库用来尝试实施并发性的方法之一是通过使用隔离级别,它决定在第一个事务访问数据时,如何对其他事务锁定或隔离该事务所使用的数据 ...

  10. C语言标准库函数总结

    一.动态内存分配1.malloc  原型:extern void *malloc(unsigned int num_bytes);  用法:#include <alloc.h>  功能:分 ...