tsys 发表于 2011-11-19 14:41:44

请问如何检查数组数据为空?[已解决]

本帖最后由 tsys 于 2011-11-19 15:52 编辑

如题,如果发现数组元素内没有数据,就删除该数组元素For $i = 1 To UBound($aRecords)
        If $aRecords[$i] = "" Then
                _ArrayDelete ($aRecords,$i)
                _ArraySort ($aRecords,0,0,0,0)
                EndIf
我是这样做的,可是没有效果,请各位朋友指教

user3000 发表于 2011-11-19 15:27:02

IsArray 函数可以判断某个变量是否是数组

你上面代码,没有效果的真正原因在于,删除数组元素后,数组的下标也跟着改变了。

tsys 发表于 2011-11-19 15:31:31

回复 2# user3000

如果是和数组下表有关系,那么UBound($aRecords) -1 在下次循环的时候不是自动改变的么?

tryhi 发表于 2011-11-19 15:36:55

代码不完整

tryhi 发表于 2011-11-19 15:43:55

本帖最后由 tryhi 于 2011-11-19 15:46 编辑

好吧,贴个代码给你吧,问题中代码不清楚,通常不回答#include <Array.au3>
Dim $aRecords = ['', 52, '', '', '', 656, 14, 1, '', 11]
_ArrayDisplay($aRecords)
$j = 0
For $i = 0 To UBound($aRecords)-1
        If $aRecords[$j] = "" Then
                _ArrayDelete($aRecords, $j)
                $j -= 1
        EndIf
        $j += 1
Next
_ArrayDisplay($aRecords)

tsys 发表于 2011-11-19 15:52:10

回复 5# tryhi


    多谢海兄
页: [1]
查看完整版本: 请问如何检查数组数据为空?[已解决]