`
Jack_min2011
  • 浏览: 3650 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

ActionScript中的关联数组的长度和空值的判断

阅读更多

      今天在做项目的过程中使用了一下关联数组,在判断关联数组是否为空时,碰见了一个问题,利用数组中常用到的length属性,发现在关联数组明确有值的情况下,返回值为0,让我很是郁闷,看了下开发指南,发现是length属性用在关联数组上时是返回0.

       思考了一下,采用下面的办法进行解决:计算关联数组中Key元素的个数。

下面是辅助类:

 

 

package com.jack.min

{

public class AssociationArrayUtil

{

public function AssociationArrayUtil()

{

}

//通过计算关联数组中元素的key的个数是否为0来判断关联数组是否为空

public static function getLength(array:Array):uint

{

// 设置一个变量来保存关联数组元素的个数

var count:uint = 0;

for (var key:Object in array)

{

count++;

}

return count;

}

public static function isEmpty(array:Array):Boolean

{

return getLength(array) == 0 ? true : false;

}

}

}

 

 

引入的测试的文件如下:

 

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 

  xmlns:s="library://ns.adobe.com/flex/spark" 

  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">

<fx:Declarations>

<!-- Place non-visual elements (e.g., services, value objects) here -->

</fx:Declarations>

<fx:Script>

<![CDATA[

import com.jack.min.AssociationArrayUtil;

private var arr:Array = [];

private var arr1:Array = [];

private function init():void

{

arr["Nanjing"] = "Jiangsu";

arr["Hangzhou"] = "Zhejiang";

arr["Jinan"] = "Shangdong";

trace("AssociationArray arr's length is: " + AssociationArrayUtil.getLength(arr));

trace("AssociationArray arr is empty : " + AssociationArrayUtil.isEmpty(arr));

trace("-------------------------------------------------------");

trace("AssociationArray arr1's length is: " + AssociationArrayUtil.getLength(arr1));

trace("AssociationArray arr1 is empty : " + AssociationArrayUtil.isEmpty(arr1));

}

]]>

</fx:Script>

</s:Application>

 

输出结果为:

 

AssociationArray arr's length is: 3

AssociationArray arr is empty : false

-------------------------------------------------------

AssociationArray arr1's length is: 0

AssociationArray arr1 is empty : true

 

 

就达到了功能。

      可能这个方法有点笨拙,也需要遍历整个关联数组,但是并没有处理数组中的每个元素,我做的是需要将关联数组中的key和值拼装成一个字符串使用,达到了我的功能。

     希望大家有更好的办法能指点下我,谢谢!


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics